分页功能的java实现(转)

最近做一个项目,要用到分页功能,参考了很多方法,有的不合适,有的不喜欢,于是自己在他们的基础上整了一个;思路是这样的:先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector,然后利用其sublist(int findex,int eindex)方法,获取需要分页的数据或记录,关于sublist()函数就自己去查API了。下面贴下代码吧,首先是将分页所需的一些个东东抽象出一个javabean对象—PageBean:

 

[java] view plain copy
 
  1. public class PageBean {  
  2.     private int curPage;             //当前页  
  3.     private int pageCount;           //总页数  
  4.     private int rowsCount;           //总行数  
  5.     private int pageSize=10;         //每页多少行  
  6.       
  7.       
  8.       
  9.     public PageBean(int rows){  
  10.           
  11.         this.setRowsCount(rows);  
  12.         if(this.rowsCount % this.pageSize == 0){  
  13.             this.pageCount=this.rowsCount / this.pageSize;  
  14.         }  
  15.         else if(rows<this.pageSize){  
  16.             this.pageCount=1;  
  17.         }  
  18.         else{  
  19.             this.pageCount=this.rowsCount / this.pageSize +1;  
  20.         }  
  21.     }  
  22.       
  23.       
  24.     public int getCurPage() {  
  25.         return curPage;  
  26.     }  
  27.     public void setCurPage(int curPage) {  
  28.         this.curPage = curPage;  
  29.     }  
  30.     public int getPageCount() {  
  31.         return pageCount;  
  32.     }  
  33.     public void setPageCount(int pageCount) {  
  34.         this.pageCount = pageCount;  
  35.     }  
  36.     public int getPageSize() {  
  37.         return pageSize;  
  38.     }  
  39.     public void setPageSize(int pageSize) {  
  40.         this.pageSize = pageSize;  
  41.     }  
  42.     public int getRowsCount() {  
  43.         return rowsCount;  
  44.     }  
  45.     public void setRowsCount(int rowsCount) {  
  46.         this.rowsCount = rowsCount;  
  47.     }  
  48. }  

 

分页显示:

 

[java] view plain copy
 
  1. List clist=adminbiz.queryNotFullCourse();//将查询结果存放在List集合里  
  2. PageBean pagebean=new PageBean(clist.size());//初始化PageBean对象  
  3. //设置当前页  
  4. pagebean.setCurPage(page); //这里page是从页面上获取的一个参数,代表页数  
  5. //获得分页大小  
  6. int pagesize=pagebean.getPageSize();  
  7. //获得分页数据在list集合中的索引  
  8. int firstIndex=(page-1)*pagesize;  
  9. int toIndex=page*pagesize;  
  10. if(toIndex>clist.size()){  
  11.     toIndex=clist.size();  
  12. }  
  13. if(firstIndex>toIndex){  
  14.     firstIndex=0;  
  15.     pagebean.setCurPage(1);  
  16. }  
  17. //截取数据集合,获得分页数据  
  18. List courseList=clist.subList(firstIndex, toIndex);  

 

这就是分页的核心代码啦,根据不同的需要可以进行灵活的修改,欢迎大家给意见啊

posted @ 2016-12-04 20:00  剑芒  阅读(217)  评论(0编辑  收藏  举报