jsp 分页_Javaweb中JSP分页的实现

1490cbda2a83dbcb79c426be29b93922.png

一、实体类的设计

二、分页工具PageBean.java

 private int currentPage = 1; // 当前页, 默认显示第一页 private int pageCount = 8; // 每页显示的行数(查询返回的行数), 默认每页显示4行 private int totalCount; // 总记录数 private int totalPage; // 总页数 = 总记录数 / 每页显示的行数 (+ 1) private List pageData; // 分页查询到的数据

三、dao数据访问:获取总记录数、分页显示数据

 // 创建QueryRunner对象 private QueryRunner qr = JdbcUtils.getQueryRuner(); ​ // 得到总记录数 public int getTotalCount() { String sql = "select count(*) from grjbxx"; try { // 执行查询, 返回结果的第一行的第一列 Long count = qr.query(sql, new ScalarHandler()); return count.intValue(); } catch (Exception e) { throw new RuntimeException(e); } } ​ // 分页显示全部数据 public void listGrjbxxAll(PageBean pb) { // 查询总记录数; 设置到pb对象中 int totalCount = this.getTotalCount(); pb.setTotalCount(totalCount); /* * 问题: jsp页面,如果当前页为首页,再点击上一页报错! 如果当前页为末页,再点下一页显示有问题! 解决: 1. 如果当前页 <= 0; * 当前页设置当前页为1; 2. 如果当前页 > 最大页数; 当前页设置为最大页数 */ // 判断 if (pb.getCurrentPage() <= 0) { pb.setCurrentPage(1); // 把当前页设置为1 } else if (pb.getCurrentPage() > pb.getTotalPage()) { pb.setCurrentPage(pb.getTotalPage()); // 把当前页设置为最大页数 } // 1. 获取当前页: 计算查询的起始行、返回的行数 int currentPage = pb.getCurrentPage(); int index = (currentPage - 1) * pb.getPageCount(); // 查询的起始行 int count = pb.getPageCount(); // 查询返回的行数 // 3. 分页查询数据; 把查询到的数据设置到pb对象中 String sql = "select * from grjbxx limit ?,?"; try { // 根据当前页,查询当前页数据(一页数据) List pageData = qr.query(sql, new BeanListHandler(Grjbxx.class), index, count); // 设置到pb对象中 pb.setPageData(pageData); } catch (Exception e) { throw new RuntimeException(e); } }

四、servlet调用dao的方法,跳转到JSP页面显示

 try { // 1. 获取“当前页”参数; (第一次访问当前页为null) String currPage = request.getParameter("currentPage"); // 判断 if (currPage == null || "".equals(currPage.trim())) { currPage = "1"; // 第一次访问,设置当前页为1; } // 转换 int currentPage = Integer.parseInt(currPage); // 2. 创建PageBean对象,设置当前页参数; 传入service方法参数 PageBean pageBean = new PageBean(); pageBean.setCurrentPage(currentPage); // 3. 调用service // 【pageBean已经被dao填充了数据】 GrjbxxDao grjbxxdao = new GrjbxxDao(); grjbxxdao.listGrjbxxAll(pageBean); // 4. 保存pageBean对象,到request域中 request.setAttribute("pageBean
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值