分页,首先要理解什么是当前页,首页,末页,以及其算法。
算法分析:------------------------------------------------
当前页:
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>