从博主henry8088那里学习JAVA分页代码实例,感觉不错,把他的代码改成适合自己项目的代码,做个记录留作以后查阅之用。
首先PageUtil 类没有做修改,直接粘贴复制的。
package com.hjf.web.view;
public class PageUtil ...{
private int pageSize;//每页显示的条数
private int recordCount;//总共的条数
private int currentPage;//当前页面
public PageUtil(int pageSize, int recordCount, int currentPage) ...{
this.pageSize = pageSize;
this.recordCount = recordCount;
setCurrentPage(currentPage);
}
//构造方法
public PageUtil(int pageSize, int recordCount) ...{
this(pageSize, recordCount, 1);
}
//总页数
public int getPageCount() ...{
int size = recordCount/pageSize;//总条数/每页显示的条数=总页数
int mod = recordCount % pageSize;//最后一页的条数
if(mod != 0)
size++;
return recordCount == 0 ? 1 : size;
}
//包含,起始索引为0
public int getFromIndex() ...{
//System.out.println("from index:"+(currentPage-1) * pageSize);
return (currentPage-1) * pageSize;
}
//不包含
public int getToIndex() ...{
//System.out.println("to index:"+Math.min(recordCount, currentPage * pageSize));
return Math.min(recordCount, currentPage * pageSize);
}
//得到当前页
public int getCurrentPage() ...{
return currentPage;
}//设置当前页
public void setCurrentPage(int currentPage) ...{
int validPage = currentPage <= 0 ? 1 : currentPage;
validPage = validPage > getPageCount() ? getPageCount() : validPage;
this.currentPage = validPage;
}//得到每页显示的条数
public int getPageSize() ...{
return pageSize;
}//设置每页显示的条数
public void setPageSize(int pageSize) ...{
this.pageSize = pageSize;
}//得到总共的条数
public int getRecordCount() ...{
return recordCount;
}//设置总共的条数
public void setRecordCount(int recordCount) ...{
this.recordCount = recordCount;
}
}第二,放在jsp里面的代码,做了一点修改,首先那些对象名自然是要修改成自己项目里面的,然后我的数据查询是写在Java类里面,所以不用再查一次。还有就是我的表有是空的,如果不加上判空,会报空指针异常.
String pageStr = request.getParameter("page");
int currentPage = 1;
if (pageStr != null)
currentPage = Integer.parseInt(pageStr);
int aListLength=0;
if(aList!=null){//aList表中可能无数据,aList为空
aListLength=aList.size();
}else{
aListLength=0;
}
PageUtil pUtil = new PageUtil(2, aListLength, currentPage);
currentPage = pUtil.getCurrentPage();遍历输出变量的for循环,只是要把对象名改一下。
for (int i = pUtil.getFromIndex(); i < pUtil.getToIndex(); i++) { //查出整个列表后,从起始页位置开始输出一个页面的记录
messegeBean2 = (MessegeBean) aList.get(i);
结尾也有少许不同(在下面的代码里把columnName写死只是为了测试上页和下页的切换是否正确,偷懒了)
记录总数条 当前页/总页数
/每页显示条