关于分页的java帮助类

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class Page<T> {
 5 
 6     private int startIndex; //该页的起始行数
 7     private int pageNum; //当前页码
 8     private int totalPageNum; //总页数
 9     private int totalNum; //总记录数
10     private int pageSize = 2; //每页显示的记录数量
11     private List<T> list; //当前页的结果集
12     
13     
14     public Page(int count,int pageNum) {
15         this.setTotalNum(count);
16         this.setPageNum(pageNum);
17     }
18     
19     public int getStartIndex() {
20         return startIndex;
21     }
22     public int getPageNum() {
23         return pageNum;
24     }
25     /**
26      * 设置当前的页码
27      * @param pageNum
28      */
29     public void setPageNum(int pageNum) {
30         if(pageNum <= 0) {
31             pageNum = 1;
32         } else if(pageNum > totalPageNum) {
33             pageNum = totalPageNum;
34         }
35         this.pageNum = pageNum;
36         this.startIndex = (this.pageNum - 1) * pageSize;
37     }
38     public int getTotalPageNum() {
39         return totalPageNum;
40     }
41 
42     public int getTotalNum() {
43         return totalNum;
44     }
45     /**
46      * 设置总记录数
47      * @param totalNum
48      */
49     public void setTotalNum(int totalNum) {
50         this.totalNum = totalNum;
51         int temp = totalNum / pageSize;
52         if(totalNum % pageSize != 0) {
53             temp++;
54         }
55         this.totalPageNum = temp;
56     }
57     public List<T> getList() {
58         return list;
59     }
60     public void setList(List<T> list) {
61         this.list = list;
62     }
63     public int getPageSize() {
64         return pageSize;
65     }
66     public void setPageSize(int pageSize) {
67         this.pageSize = pageSize;
68     }
69     
70     //count为页面中显示多少页,pageNum表示当前页码
71     public List<Integer> getSlider(int count,int pageNum) {
72         int halfSize = count / 2;
73         int totalPage = getTotalPageNum();
74         count -= 1;
75         
76         int startPageNo = Math.max(pageNum - halfSize, 1);
77         int endPageNo = Math.min(startPageNo + count, totalPage);
78  
79         if (endPageNo - startPageNo != count) {
80             startPageNo = Math.max(endPageNo - count, 1);
81         }
82  
83         List<Integer> result = new ArrayList<Integer>();
84         for (int i = startPageNo; i <= endPageNo; i++) {
85             result.add(i);
86         }
87         return result;
88     }
89 
90     
91     
92 }

 

posted @ 2013-05-13 22:10  system("cls")  阅读(627)  评论(0编辑  收藏  举报