首页>代码>spring mvc+mybatis+mysql+maven+bootstrap-table整合实现增删查改简单实例>/demo-bstable/src/main/java/com/xe/demo/common/pojo/PageAjax.java
001 | package com.xe.demo.common.pojo; |
002 |
003 | import java.io.Serializable; |
004 | import java.util.Collection; |
005 | import java.util.List; |
006 |
007 | import com.github.pagehelper.Page; |
008 |
009 | /** |
010 | * 封装分页请求结果 |
011 | * @author CZH |
012 | */ |
013 | @SuppressWarnings ({ "rawtypes" , "unchecked" }) |
014 | public class PageAjax<T> implements Serializable { |
015 | private static final long serialVersionUID = 1L; |
016 | /**当前页*/ |
017 | private int pageNo; |
018 | /**每页的数量*/ |
019 | private int pageSize; |
020 | /**当前页的数量*/ |
021 | private int size; |
022 | /**排序*/ |
023 | private String orderBy; |
024 | /**当前页面第一个元素在数据库中的行号*/ |
025 | private int startRow; |
026 | /**当前页面最后一个元素在数据库中的行号*/ |
027 | private int endRow; |
028 | /**总记录数*/ |
029 | private long total; |
030 | /**总页数*/ |
031 | private int pages; |
032 | /**结果集*/ |
033 | private List<T> rows; |
034 | /**第一页*/ |
035 | private int firstPage; |
036 | /**前一页*/ |
037 | private int prePage; |
038 | /**下一页*/ |
039 | private int nextPage; |
040 | /**最后一页*/ |
041 | private int lastPage; |
042 | /**是否为第一页*/ |
043 | private boolean isFirstPage = false ; |
044 | /**是否为最后一页*/ |
045 | private boolean isLastPage = false ; |
046 | /**是否有前一页*/ |
047 | private boolean hasPreviousPage = false ; |
048 | /**是否有下一页*/ |
049 | private boolean hasNextPage = false ; |
050 | /**导航页码数*/ |
051 | private int navigatePages; |
052 | /**所有导航页号*/ |
053 | private int [] navigatepageNums; |
054 |
055 | public PageAjax() { |
056 | } |
057 |
058 | /** |
059 | * 包装Page对象 |
060 | * @param list |
061 | */ |
062 | public PageAjax(List<T> list) { |
063 | this (list, 8 ); |
064 | } |
065 |
066 | /** |
067 | * 包装Page对象 |
068 | * @param list page结果 |
069 | * @param navigatePages 页码数量 |
070 | */ |
071 | public PageAjax(List<T> list, int navigatePages) { |
072 | if (list instanceof Page) { |
073 | Page page = (Page) list; |
074 | this .pageNo = page.getPageNum(); |
075 | this .pageSize = page.getPageSize(); |
076 | // this.orderBy = page.getOrderBy(); |
077 |
078 | this .pages = page.getPages(); |
079 | this .rows = page; |
080 | this .size = page.size(); |
081 | this .total = page.getTotal(); |
082 | //由于结果是>startRow的,所以实际的需要+1 |
083 | if ( this .size == 0 ) { |
084 | this .startRow = 0 ; |
085 | this .endRow = 0 ; |
086 | } else { |
087 | this .startRow = page.getStartRow() + 1 ; |
088 | //计算实际的endRow(最后一页的时候特殊) |
089 | this .endRow = this .startRow - 1 + this .size; |
090 | } |
091 | } else if (list instanceof Collection) { |
092 | this .pageNo = 1 ; |
093 | this .pageSize = list.size(); |
094 |
095 | this .pages = 1 ; |
096 | this .rows = list; |
097 | this .size = list.size(); |
098 | this .total = list.size(); |
099 | this .startRow = 0 ; |
100 | this .endRow = list.size() > 0 ? list.size() - 1 : 0 ; |
101 | } |
102 | if (list instanceof Collection) { |
103 | this .navigatePages = navigatePages; |
104 | //计算导航页 |
105 | calcNavigatepageNums(); |
106 | //计算前后页,第一页,最后一页 |
107 | calcPage(); |
108 | //判断页面边界 |
109 | judgePageBoudary(); |
110 | } |
111 | } |
112 |
113 | /** |
114 | * 计算导航页 |
115 | */ |
116 | private void calcNavigatepageNums() { |
117 | //当总页数小于或等于导航页码数时 |
118 | if (pages <= navigatePages) { |
119 | navigatepageNums = new int [pages]; |
120 | for ( int i = 0 ; i < pages; i++) { |
121 | navigatepageNums[i] = i + 1 ; |
122 | } |
123 | } else { //当总页数大于导航页码数时 |
124 | navigatepageNums = new int [navigatePages]; |
125 | int startNum = pageNo - navigatePages / 2 ; |
126 | int endNum = pageNo + navigatePages / 2 ; |
127 |
128 | if (startNum < 1 ) { |
129 | startNum = 1 ; |
130 | //(最前navigatePages页 |
131 | for ( int i = 0 ; i < navigatePages; i++) { |
132 | navigatepageNums[i] = startNum++; |
133 | } |
134 | } else if (endNum > pages) { |
135 | endNum = pages; |
136 | //最后navigatePages页 |
137 | for ( int i = navigatePages - 1 ; i >= 0 ; i--) { |
138 | navigatepageNums[i] = endNum--; |
139 | } |
140 | } else { |
141 | //所有中间页 |
142 | for ( int i = 0 ; i < navigatePages; i++) { |
143 | navigatepageNums[i] = startNum++; |
144 | } |
145 | } |
146 | } |
147 | } |
148 |
149 | /** |
150 | * 计算前后页,第一页,最后一页 |
151 | */ |
152 | private void calcPage() { |
153 | if (navigatepageNums != null && navigatepageNums.length > 0 ) { |
154 | firstPage = navigatepageNums[ 0 ]; |
155 | lastPage = navigatepageNums[navigatepageNums.length - 1 ]; |
156 | if (pageNo > 1 ) { |
157 | prePage = pageNo - 1 ; |
158 | } |
159 | if (pageNo < pages) { |
160 | nextPage = pageNo + 1 ; |
161 | } |
162 | } |
163 | } |
164 |
165 | /** |
166 | * 判定页面边界 |
167 | */ |
168 | private void judgePageBoudary() { |
169 | isFirstPage = pageNo == 1 ; |
170 | isLastPage = pageNo == pages; |
171 | hasPreviousPage = pageNo > 1 ; |
172 | hasNextPage = pageNo < pages; |
173 | } |
174 |
175 | public int getPageNo() { |
176 | return pageNo; |
177 | } |
178 |
179 | public void setPageNo( int pageNo) { |
180 | this .pageNo = pageNo; |
181 | } |
182 |
183 | public int getPageSize() { |
184 | return pageSize; |
185 | } |
186 |
187 | public void setPageSize( int pageSize) { |
188 | this .pageSize = pageSize; |
189 | } |
190 |
191 | public int getSize() { |
192 | return size; |
193 | } |
194 |
195 | public void setSize( int size) { |
196 | this .size = size; |
197 | } |
198 |
199 | public String getOrderBy() { |
200 | return orderBy; |
201 | } |
202 |
203 | public void setOrderBy(String orderBy) { |
204 | this .orderBy = orderBy; |
205 | } |
206 |
207 | public int getStartRow() { |
208 | return startRow; |
209 | } |
210 |
211 | public void setStartRow( int startRow) { |
212 | this .startRow = startRow; |
213 | } |
214 |
215 | public int getEndRow() { |
216 | return endRow; |
217 | } |
218 |
219 | public void setEndRow( int endRow) { |
220 | this .endRow = endRow; |
221 | } |
222 |
223 | public long getTotal() { |
224 | return total; |
225 | } |
226 |
227 | public void setTotal( long total) { |
228 | this .total = total; |
229 | } |
230 |
231 | public int getPages() { |
232 | return pages; |
233 | } |
234 |
235 | public void setPages( int pages) { |
236 | this .pages = pages; |
237 | } |
238 |
239 | public List<T> getRows() { |
240 | return rows; |
241 | } |
242 |
243 | public void setRows(List<T> rows) { |
244 | this .rows = rows; |
245 | } |
246 |
247 | public int getFirstPage() { |
248 | return firstPage; |
249 | } |
250 |
251 | public void setFirstPage( int firstPage) { |
252 | this .firstPage = firstPage; |
253 | } |
254 |
255 | public int getPrePage() { |
256 | return prePage; |
257 | } |
258 |
259 | public void setPrePage( int prePage) { |
260 | this .prePage = prePage; |
261 | } |
262 |
263 | public int getNextPage() { |
264 | return nextPage; |
265 | } |
266 |
267 | public void setNextPage( int nextPage) { |
268 | this .nextPage = nextPage; |
269 | } |
270 |
271 | public int getLastPage() { |
272 | return lastPage; |
273 | } |
274 |
275 | public void setLastPage( int lastPage) { |
276 | this .lastPage = lastPage; |
277 | } |
278 |
279 | public boolean isIsFirstPage() { |
280 | return isFirstPage; |
281 | } |
282 |
283 | public void setIsFirstPage( boolean isFirstPage) { |
284 | this .isFirstPage = isFirstPage; |
285 | } |
286 |
287 | public boolean isIsLastPage() { |
288 | return isLastPage; |
289 | } |
290 |
291 | public void setIsLastPage( boolean isLastPage) { |
292 | this .isLastPage = isLastPage; |
293 | } |
294 |
295 | public boolean isHasPreviousPage() { |
296 | return hasPreviousPage; |
297 | } |
298 |
299 | public void setHasPreviousPage( boolean hasPreviousPage) { |
300 | this .hasPreviousPage = hasPreviousPage; |
301 | } |
302 |
303 | public boolean isHasNextPage() { |
304 | return hasNextPage; |
305 | } |
306 |
307 | public void setHasNextPage( boolean hasNextPage) { |
308 | this .hasNextPage = hasNextPage; |
309 | } |
310 |
311 | public int getNavigatePages() { |
312 | return navigatePages; |
313 | } |
314 |
315 | public void setNavigatePages( int navigatePages) { |
316 | this .navigatePages = navigatePages; |
317 | } |
318 |
319 | public int [] getNavigatepageNums() { |
320 | return navigatepageNums; |
321 | } |
322 |
323 | public void setNavigatepageNums( int [] navigatepageNums) { |
324 | this .navigatepageNums = navigatepageNums; |
325 | } |
326 |
327 | @Override |
328 | public String toString() { |
329 | final StringBuffer sb = new StringBuffer( "PageAjax{" ); |
330 | sb.append( " pageNo=" ).append(pageNo); |
331 | sb.append( ", pageSize=" ).append(pageSize); |
332 | sb.append( ", size=" ).append(size); |
333 | sb.append( ", startRow=" ).append(startRow); |
334 | sb.append( ", endRow=" ).append(endRow); |
335 | sb.append( ", total=" ).append(total); |
336 | sb.append( ", pages=" ).append(pages); |
337 | sb.append( ", rows=" ).append(rows); |
338 | sb.append( ", firstPage=" ).append(firstPage); |
339 | sb.append( ", prePage=" ).append(prePage); |
340 | sb.append( ", nextPage=" ).append(nextPage); |
341 | sb.append( ", lastPage=" ).append(lastPage); |
342 | sb.append( ", isFirstPage=" ).append(isFirstPage); |
343 | sb.append( ", isLastPage=" ).append(isLastPage); |
344 | sb.append( ", hasPreviousPage=" ).append(hasPreviousPage); |
345 | sb.append( ", hasNextPage=" ).append(hasNextPage); |
346 | sb.append( ", navigatePages=" ).append(navigatePages); |
347 | sb.append( ", navigatepageNums=" ); |
348 | if (navigatepageNums == null ) sb.append( "null" ); |
349 | else { |
350 | sb.append( '[' ); |
351 | for ( int i = 0 ; i < navigatepageNums.length; ++i) |
352 | sb.append(i == 0 ? "" : ", " ).append(navigatepageNums[i]); |
353 | sb.append( ']' ); |
354 | } |
355 | sb.append( '}' ); |
356 | return sb.toString(); |
357 | } |
358 | } |
