分页的实现 20111115

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

算法分析:------------------------------------------------
     当前页:
             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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值