分页的实现

20111117学习总结:

分页的实现

分页,首先要理解什么是当前页,首页,末页,以及其算法。

算法分析:------------------------------------------------

      当前页:

              int nowpage;

      首页:

             nowpage=1;

      末页:

             int countpage; 总页

             nowpage=countpage;

      上一页:

             nowpage = nowpage-1;

             if(nowpage<1){

                   nowpage=1;

             }

      下一页:

            nowpage = nowpage+1;

            if(nowpage>countpage){

               nowpage=countpage;

            }

 -----------------------------------------------------

 理解概念:

      当前页 nowpage

      总页数 countpage =======7页      

      每页显示的记录数  10条

      当前页开始的记录数:(nowpage-1)*10+1;

      1  1-10

      2  11-20

      3  21 30

      4  31 40

      5  41 50

      总记录数:

            countrecord  =64记录

 总页数==总记录数%每页显示的记录数==0?总记录数/每页显示的记录数:总记录数/每页显示的记录数+1;

 ------------------------------------------

 表的操作:

     总记录数:select count(*) from 表名;

     每页显示3条记录: 声明 int pagesize=3;

     总页数:总页数==总记录数%每页显示的记录数==0?总记录数/每页显示的记录数:总记录数/每页显示的记录数+1;

     当前页的记录信息:

           select * from 表名  limit (nowpage-1)*pagesize,pagesize;

代码中方法如下:

//总记录数

Integer getCountRecord();

//当前页显示的记录

  List<News> findNewPageInfo(Integer nowpage);

//显示所有记录

  List<News> findAll();

//总页数

  Integer getCountPage();

//算法实现

NewsService nService = new NewsServiceImpl();

   List<News> entities = nService.findAll();

   Integer countRecord = nService.getCountRecord();

   Integer countPage = nService.getCountPage();

   String npage = request.getParameter("nowpage");

   int nowpage=1;

   if("".equals(npage)||npage==null){

    nowpage=1;

   }else{

    nowpage=Integer.parseInt(npage);

    if(nowpage<=1){

     nowpage=1;

     }

    if(nowpage>=countPage){

     nowpage=countPage;

     

    }

   }

   List<News> entitiesr = nService.findNewPageInfo(nowpage);

   

   request.setAttribute("entities", entitiesr);

   request.setAttribute("countRecord", countRecord);

   request.setAttribute("countPage", countPage);

   request.setAttribute("nowpage", nowpage);

   

   request.getRequestDispatcher("./index.jsp").forward(request, response);

//JSP分页实现

<span><a href="${pageContext.request.contextPath}/list.do?nowpage=1">首页</span>

      <span><a href="${pageContext.request.contextPath}/list.do?nowpage=${nowpage-1}">上一页</span>

      <span><a href="${pageContext.request.contextPath}/list.do?nowpage=${nowpage+1}">下一页</span>

      <span><a href="${pageContext.request.contextPath}/list.do?nowpage=${countPage}">末页</span>

      <span>当前为第${nowpage}页,共${countRecord}条记录,共${countPage}页</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值