1 public class Pagination<T> {
2 /**
3 * 当前页
4 */
5 private int page;
6 /**
7 * 最大页
8 */
9 private int max;
10 /**
11 * 下一页
12 */
13 private int next;
14 /**
15 * 上一页
16 */
17 private int previous;
18 /**
19 * 本页显示数据开始位置
20 */
21 private int start;
22 /**
23 * 本页显示数据的结束未知
24 */
25 private int end;
26 /**
27 * 数据
28 */
29 private T data;
30 /**
31 * 总数
32 */
33 private int maxRows;
34
35 public Pagination(){};
36
37 /**
38 * 分页
39 * @param maxRows 数据的最大行数
40 * @param pageNum 每页最多显示多少条数据
41 * @param curPage 指定当前页
42 */
43 public Pagination(int maxRows,int pageNum,int curPage){
44 this.maxRows = maxRows;
45
46 curPage = curPage < 1 ? 1 : curPage;
47 this.page = curPage;
48 this.max = maxRows%pageNum == 0 ? maxRows/pageNum : maxRows/pageNum + 1;
49
50 if(page < max){
51 this.next = page + 1;
52 }else if(page == max){
53 this.next = max;
54 }
55
56 if(page > 1){
57 this.previous = page - 1;
58 }if(page == 1){
59 this.previous = page;
60 }
61
62 this.start = (curPage-1) * pageNum;
63 this.end = pageNum;
64 }
65
66 public int getPage() {
67 return page;
68 }
69
70 public void setPage(int page) {
71 this.page = page;
72 }
73
74 public int getMax() {
75 return max;
76 }
77
78 public void setMax(int max) {
79 this.max = max;
80 }
81
82 public int getNext() {
83 return next;
84 }
85
86 public void setNext(int next) {
87 this.next = next;
88 }
89
90 public int getPrevious() {
91 return previous;
92 }
93
94 public void setPrevious(int previous) {
95 this.previous = previous;
96 }
97
98 public T getData() {
99 return data;
100 }
101
102 public void setData(T data) {
103 this.data = data;
104 }
105
106 public int getStart() {
107 return start;
108 }
109
110 public void setStart(int start) {
111 this.start = start;
112 }
113
114 public int getEnd() {
115 return end;
116 }
117
118 public void setEnd(int end) {
119 this.end = end;
120 }
121
122 public int getMaxRows() {
123 return maxRows;
124 }
125
126 public void setMaxRows(int maxRows) {
127 this.maxRows = maxRows;
128 }
129 }