JavaWeb中分页的实现

需要用到一个PageBean对象来实现

  1.PageBean包含的属性

    * totalCount  数据库中的总条目数

    * rows 每页显示的行数

    * totalPage 总分页数  通过该表达式来确定  

       totalPage = (totalCount%rows == 0)?totalCount/rows:totalCount/rows+1

    * currentPage  当前页面页码

    * List  用来接收数据库返回的list

  2.上述属性获取

    * totalCount:select count(*) from user

    * rows: 从前端获取  或者登陆的时候自己确定  从客户端获取

    * totalPage :totalPage = (totalCount%rows == 0)?totalCount/rows:totalCount/rows+1

    * currentPage : 从分页标签的value中获取

    * List  :public List<User> findByPage(int start, int rows)

       * start= (currentPage-1)*rows

       * sql="select * from user limit ?, ?"

  3.步骤:

    1.登录时设置 start=1,rows为想要份的行数

    2.跳转到findByPageServlet?start=1&rows=xx;

    3.调用  Service层的findUserByPage(int currentPage,int rows);返回PageBean对象 将数据显示到前端

      *  findUserByPage(int currentPage,int rows){

         1.int currentPage,int rows从前端传来

         2.计算totalCount

         3.计算totalPage

         4.start为start= (currentPage-1)*rows

         5.  List<User> list = dao.findByPage(start,rows);

         6.上述属性封装到PageBean  传给前端

         7.显示

        }

  4.前端的细节

  //用于判断是否是第一页  是第一页  就不能继续点击pre了

<c:if test="${pg.currentPage==1}">
<li class="disabled">
<a href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</c:if>
  //用于显示点击那一页那一页码按钮加深
<c:if test="${pg.currentPage==i}">
<li class="active"><a href="/findByPageServlet?currentpage=${i}&rows=3" >${i}</a></li>
</c:if>

猜你喜欢

转载自www.cnblogs.com/zishang/p/12264156.html