最近做一個項目,要用到分頁功能,參考了很多方法,有的不合適,有的不喜歡,於是自己在他們的基礎上整了一個;思路是這樣的:先把需要分頁的數據或是記錄都查詢出來 存入一個集合類里如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);