Pager.java
1 package pers.kangxu.datautils.common;
2
3 import java.io.Serializable;
4 import java.util.List;
5
6 /**
7 *
8 * <b> 分頁通用類 </b>
9 *
10 * @author kangxu
11 * @param <T>
12 *
13 */
14 public class Pager<T> implements Serializable {
15
16 /**
17 *
18 */
19 private static final long serialVersionUID = 4542617637761955078L;
20
21 /**
22 * currentPage 當前頁
23 */
24 private int currentPage = 1;
25 /**
26 * pageSize 每頁大小
27 */
28 private int pageSize = 10;
29 /**
30 * pageTotal 總頁數
31 */
32 private int pageTotal;
33 /**
34 * recordTotal 總條數
35 */
36 private int recordTotal = 0;
37 /**
38 * previousPage 前一頁
39 */
40 private int previousPage;
41 /**
42 * nextPage 下一頁
43 */
44 private int nextPage;
45 /**
46 * firstPage 第一頁
47 */
48 private int firstPage = 1;
49 /**
50 * lastPage 最後一頁
51 */
52 private int lastPage;
53 /**
54 * content 每頁的內容
55 */
56 private List<T> content;
57
58 // 以下set方式是需要賦值的
59 /**
60 * 設置當前頁 <br>
61 *
62 * @author kangxu
63 *
64 * @param currentPage
65 */
66 public void setCurrentPage(int currentPage) {
67 this.currentPage = currentPage;
68 }
69
70 /**
71 * 設置每頁大小,也可以不用賦值,默認大小為10條 <br>
72 *
73 * @author kangxu
74 *
75 * @param pageSize
76 */
77 public void setPageSize(int pageSize) {
78 this.pageSize = pageSize;
79 }
80
81 /**
82 * 設置總條數,默認為0 <br>
83 *
84 * @author kangxu
85 *
86 * @param recordTotal
87 */
88 public void setRecordTotal(int recordTotal) {
89 this.recordTotal = recordTotal;
90 otherAttr();
91 }
92
93 /**
94 * 設置分頁內容 <br>
95 *
96 * @author kangxu
97 *
98 * @param content
99 */
100 public void setContent(List<T> content) {
101 this.content = content;
102 }
103
104 /**
105 * 設置其他參數
106 *
107 * @author kangxu
108 *
109 */
110 public void otherAttr() {
111 // 總頁數
112 this.pageTotal = this.recordTotal % this.pageSize > 0 ? this.recordTotal / this.pageSize + 1 : this.recordTotal / this.pageSize;
113 // 第一頁
114 this.firstPage = 1;
115 // 最後一頁
116 this.lastPage = this.pageTotal;
117 // 前一頁
118 if (this.currentPage > 1) {
119 this.previousPage = this.currentPage - 1;
120 } else {
121 this.previousPage = this.firstPage;
122 }
123 // 下一頁
124 if (this.currentPage < this.lastPage) {
125 this.nextPage = this.currentPage + 1;
126 } else {
127 this.nextPage = this.lastPage;
128 }
129 }
130
131 // 放開私有屬性
132 public int getCurrentPage() {
133 return currentPage;
134 }
135
136 public int getPageSize() {
137 return pageSize;
138 }
139
140 public int getPageTotal() {
141 return pageTotal;
142 }
143
144 public int getRecordTotal() {
145 return recordTotal;
146 }
147
148 public int getPreviousPage() {
149 return previousPage;
150 }
151
152 public int getNextPage() {
153 return nextPage;
154 }
155
156 public int getFirstPage() {
157 return firstPage;
158 }
159
160 public int getLastPage() {
161 return lastPage;
162 }
163
164 public List<T> getContent() {
165 return content;
166 }
167
168 @Override
169 public String toString() {
170 return "Pager [currentPage=" + currentPage + ", pageSize=" + pageSize
171 + ", pageTotal=" + pageTotal + ", recordTotal=" + recordTotal
172 + ", previousPage=" + previousPage + ", nextPage=" + nextPage
173 + ", firstPage=" + firstPage + ", lastPage=" + lastPage
174 + ", content=" + content + "]";
175 }
176
177
178
179 }
使用 PagerTester.java
1 package pers.kangxu.datautils.utils;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import pers.kangxu.datautils.common.Pager;
7
8 /**
9 * 分頁數據測試
10 * <b>
11 *
12 * </b>
13 * @author kangxu
14 *
15 */
16 public class PagerTester {
17
18 public static void main(String[] args) {
19
20 Pager<String> pager = new Pager<String>();
21
22 List<String> content = new ArrayList<String>();
23 content.add("str1");
24 content.add("str2");
25 content.add("str3");
26 content.add("str4");
27 content.add("str5");
28 content.add("str6");
29 content.add("str7");
30 content.add("str8");
31 content.add("str9");
32 content.add("str10");
33
34 pager.setCurrentPage(1);
35 pager.setPageSize(10);
36 pager.setRecordTotal(62);
37 pager.setContent(content);
38
39 System.out.println(pager);
40
41 }
42
43 }