1 importjava.util.ArrayList;2 importjava.util.List;3
4 /**
5 *6 *@authorcheney7 *8 * @date Aug 31, 20129 */
10 public class PageModel{11 private int page = 1; //当前页
12 public int totalPages = 0; //总页数
13 private int pageRecorders;//每页5条数据
14 private int totalRows = 0; //总数据数
15 private int pageStartRow = 0;//每页的起始数
16 private int pageEndRow = 0; //每页显示数据的终止数
17 private boolean hasNextPage = false; //是否有下一页
18 private boolean hasPreviousPage = false; //是否有前一页
19 private Listlist;20
21 /**
22 *23 *@paramlist24 *@parampageRecorders25 */
26 public PageModel(List list, intpageRecorders) {27 init(list, pageRecorders);//通过对象集,记录总数划分
28 }29
30 /** */
31 /**
32 * 初始化list,并告之该list每页的记录数33 *34 *@paramlist35 *@parampageRecorders36 */
37 public void init(List list, intpageRecorders) {38 this.pageRecorders =pageRecorders;39 this.list =list;40 totalRows =list.size();41
42 hasPreviousPage = false;43
44 if ((totalRows % pageRecorders) == 0) {45 totalPages = totalRows /pageRecorders;46 } else{47 totalPages = totalRows / pageRecorders + 1;48 }49
50 if (page >=totalPages) {51 hasNextPage = false;52 } else{53 hasNextPage = true;54 }55
56 if (totalRows
65 publicString displayForPage(String method) {66 StringBuffer sb = newStringBuffer();67 sb.append("
");6869 //判断是否有上一页
70 if (this.isHasPreviousPage()) {71 sb.append("上一页");74 } else{75 sb.append("上一页");76 }77
78 //中间显示
79 for (int i = 1; i <= this.getTotalPages(); i++) {80 String spanClzz = "
81 + method + "('" + String.valueOf(i) + "');return false;\">"
82 + i + "
";8384 if (this.page ==i) {85 spanClzz = "" + i + "";86 }87 sb.append(spanClzz);88
89 //当大于9页数的时候才进行分页显示
90 if (this.getTotalPages() - 2 > 7) {91 if (i == 5) {92 i = this.getTotalPages() - 2;93 sb.append("...");94 }95 }96 }97 //判断是否有下一页
98 if (this.isHasNextPage()) {99 sb.append("下一页");102
103 } else{104 sb.append("下一页");105 }106
107 sb.append("
");108 returnsb.toString();109 }110111 publicString displayForPage() {112 StringBuffer sb = newStringBuffer();113 sb.append("
");114115 //判断是否有上一页
116 if (this.isHasPreviousPage()) {117 sb118 .append("
119 + String.valueOf(this.getPage() - 1)120 + "');return false;\">上一页
");121 } else{122 sb.append(" 上一页");123 }124125 //中间显示
126 for (int i = 1; i <= this.getTotalPages(); i++) {127 String spanClzz = "
128 + String.valueOf(i) + "');return false;\">" + i + "
";129130 if (this.page ==i) {131 spanClzz = "" + i + "";132 }133 sb.append(spanClzz);134
135 //当大于9页数的时候才进行分页显示
136 if (this.getTotalPages() - 2 > 7) {137 if (i == 5) {138 i = this.getTotalPages() - 2;139 sb.append("...");140 }141 }142 }143 //判断是否有下一页
144 if (this.isHasNextPage()) {145 sb146 .append("
147 + String.valueOf(this.getPage() + 1)148 + "');return false;\">下一页
");149150 } else{151 sb.append("下一页");152 }153
154 sb.append("
");155 returnsb.toString();156 }157158 //判断要不要分页
159 public booleanisNext() {160 return list.size() > 5;161 }162
163 public void setHasPreviousPage(booleanhasPreviousPage) {164 this.hasPreviousPage =hasPreviousPage;165 }166
167 /**
168 *169 *@return
170 */
171 public ListgetNextPage() {172 page = page + 1;173 disposePage();174 returngetObjects(page);175 }176
177 /**
178 * 处理分页179 */
180 private voiddisposePage() {181 if (page == 0) {182 page = 1;183 }184 if ((page - 1) > 0) {185 hasPreviousPage = true;186 } else{187 hasPreviousPage = false;188 }189
190 if (page >=totalPages) {191 hasNextPage = false;192 } else{193 hasNextPage = true;194 }195 }196
197 /**
198 * 上一页199 *200 *@return
201 */
202 public ListgetPreviousPage() {203 page = page - 1;204
205 if ((page - 1) > 0) {206 hasPreviousPage = true;207 } else{208 hasPreviousPage = false;209 }210 if (page >=totalPages) {211 hasNextPage = false;212 } else{213 hasNextPage = true;214 }215 returngetObjects(page);216 }217
218 /**
219 * 获取第几页的内容220 *221 *@parampage222 *@return
223 */
224 public List getObjects(intpage) {225 if (page == 0) {226 this.setPage(1);227 page = 1;228 } else{229 this.setPage(page);230 }231
232 this.disposePage();233
234 if (page * pageRecorders < totalRows) {//判断是否为最后一页
235 pageEndRow = page *pageRecorders;236 pageStartRow = pageEndRow -pageRecorders;237 } else{238 pageEndRow =totalRows;239 pageStartRow = pageRecorders * (totalPages - 1);240 }241
242 List objects = null;243 if (!list.isEmpty()) {244 objects =list.subList(pageStartRow, pageEndRow);245 }246 returnobjects;247 }248
249 /**
250 * 第一页251 *252 *@return
253 */
254 public ListgetFistPage() {255 if (this.isNext()) {256 return list.subList(0, pageRecorders);257 } else{258 returnlist;259 }260 }261
262 /**
263 *@returnthe page264 */
265 public intgetPage() {266 returnpage;267 }268
269 /**
270 *@parampage271 * the page to set272 */
273 public void setPage(intpage) {274 this.page =page;275 }276
277 /**
278 *@returnthe totalPages279 */
280 public intgetTotalPages() {281 returntotalPages;282 }283
284 /**
285 *@paramtotalPages286 * the totalPages to set287 */
288 public void setTotalPages(inttotalPages) {289 this.totalPages =totalPages;290 }291
292 /**
293 *@returnthe pageRecorders294 */
295 public intgetPageRecorders() {296 returnpageRecorders;297 }298
299 /**
300 *@parampageRecorders301 * the pageRecorders to set302 */
303 public void setPageRecorders(intpageRecorders) {304 this.pageRecorders =pageRecorders;305 }306
307 /**
308 *@returnthe totalRows309 */
310 public intgetTotalRows() {311 returntotalRows;312 }313
314 /**
315 *@paramtotalRows316 * the totalRows to set317 */
318 public void setTotalRows(inttotalRows) {319 this.totalRows =totalRows;320 }321
322 /**
323 *@returnthe pageStartRow324 */
325 public intgetPageStartRow() {326 returnpageStartRow;327 }328
329 /**
330 *@parampageStartRow331 * the pageStartRow to set332 */
333 public void setPageStartRow(intpageStartRow) {334 this.pageStartRow =pageStartRow;335 }336
337 /**
338 *@returnthe pageEndRow339 */
340 public intgetPageEndRow() {341 returnpageEndRow;342 }343
344 /**
345 *@parampageEndRow346 * the pageEndRow to set347 */
348 public void setPageEndRow(intpageEndRow) {349 this.pageEndRow =pageEndRow;350 }351
352 /**
353 *@returnthe hasNextPage354 */
355 public booleanisHasNextPage() {356 returnhasNextPage;357 }358
359 /**
360 *@paramhasNextPage361 * the hasNextPage to set362 */
363 public void setHasNextPage(booleanhasNextPage) {364 this.hasNextPage =hasNextPage;365 }366
367 /**
368 *@returnthe list369 */
370 public ListgetList() {371 returnlist;372 }373
374 /**
375 *@paramlist376 * the list to set377 */
378 public void setList(Listlist) {379 this.list =list;380 }381
382 /**
383 *@returnthe hasPreviousPage384 */
385 public booleanisHasPreviousPage() {386 returnhasPreviousPage;387 }388
389 /*
390 *391 * @param args392 */
393 public static voidmain(String[] args) {394
395 List list = new ArrayList();396
397 list.add("a");398 list.add("b");399 list.add("c");400 list.add("d");401 list.add("e");402 list.add("f");403 list.add("g");404 list.add("h");405 list.add("h");406 list.add("i");407 list.add("j");408
409 System.out.println(list.size());410
411 PageModel pm = new PageModel(list, 3);//每页显示条数
412
413 pm.getObjects(1);414
415 System.out.println(pm.displayForPage("disResult"));416 }417
418 }
更多推荐
java 分页最后一页_java-分页之页面分页
发布评论