关于分页的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 }