分页功能的java实现(转)
最近做一个项目,要用到分页功能,参考了很多方法,有的不合适,有的不喜欢,于是自己在他们的基础上整了一个;思路是这样的:先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector,然后利用其sublist(int findex,int eindex)方法,获取需要分页的数据或记录,关于sublist()函数就自己去查API了。下面贴下代码吧,首先是将分页所需的一些个东东抽象出一个javabean对象—PageBean:
- public class PageBean {
- private int curPage; //当前页
- private int pageCount; //总页数
- private int rowsCount; //总行数
- private int pageSize=10; //每页多少行
- public PageBean(int rows){
- this.setRowsCount(rows);
- if(this.rowsCount % this.pageSize == 0){
- this.pageCount=this.rowsCount / this.pageSize;
- }
- else if(rows<this.pageSize){
- this.pageCount=1;
- }
- else{
- this.pageCount=this.rowsCount / this.pageSize +1;
- }
- }
- public int getCurPage() {
- return curPage;
- }
- public void setCurPage(int curPage) {
- this.curPage = curPage;
- }
- public int getPageCount() {
- return pageCount;
- }
- public void setPageCount(int pageCount) {
- this.pageCount = pageCount;
- }
- public int getPageSize() {
- return pageSize;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- public int getRowsCount() {
- return rowsCount;
- }
- public void setRowsCount(int rowsCount) {
- this.rowsCount = rowsCount;
- }
- }
分页显示:
- List clist=adminbiz.queryNotFullCourse();//将查询结果存放在List集合里
- PageBean pagebean=new PageBean(clist.size());//初始化PageBean对象
- //设置当前页
- pagebean.setCurPage(page); //这里page是从页面上获取的一个参数,代表页数
- //获得分页大小
- int pagesize=pagebean.getPageSize();
- //获得分页数据在list集合中的索引
- int firstIndex=(page-1)*pagesize;
- int toIndex=page*pagesize;
- if(toIndex>clist.size()){
- toIndex=clist.size();
- }
- if(firstIndex>toIndex){
- firstIndex=0;
- pagebean.setCurPage(1);
- }
- //截取数据集合,获得分页数据
- List courseList=clist.subList(firstIndex, toIndex);
这就是分页的核心代码啦,根据不同的需要可以进行灵活的修改,欢迎大家给意见啊