1 package com.zzuli.util; 2 3 import java.util.List; 4 5 /** 6 * PageBean类 7 * @author hejjon 8 * @date 2019年6月8日 下午2:18:50 9 * @param <T> 10 */ 11 public class PageBean<T> { 12 private int size; // 每页要显示的记录条数 指定默认为5 13 private int index; // 当前页号 14 private int totalPageCount; // 总页数 15 private int totalCount; // 记录总条数 16 17 private int[] numbers; // 展示页数的数组 18 private List<T> list; // 要显示到页面的数据集合 19 20 /** 21 * 获取起始下标 22 * @return 23 */ 24 public int getStartRow() { 25 return (index - 1) * size; 26 } 27 28 /** 29 * 获取结束下标 30 * @return 31 */ 32 public int getEndRow() { 33 return index * size; 34 } 35 36 /** 37 * 获取每页要显示的记录条数 38 * @return 39 */ 40 public int getSize() { 41 return size; 42 } 43 44 /** 45 * 设置每页要显示的记录条数 46 * @param size 47 */ 48 public void setSize(int size) { 49 if (size > 0) { 50 this.size = size; 51 } 52 } 53 54 /** 55 * 获取当前页号 56 * @return 57 */ 58 public int getIndex() { 59 60 if (totalPageCount == 0) { 61 return 0; 62 } 63 return index; 64 } 65 66 /** 67 * 设置当前页号 68 * @param index 69 */ 70 public void setIndex(int index) { 71 if (index > 0) { 72 this.index = index; 73 } 74 } 75 76 /** 77 * 获取记录总条数 78 * @return 79 */ 80 public int getTotalCount() { 81 return totalCount; 82 } 83 84 /** 85 * 设置记录总条数 86 * @param totalCount 87 */ 88 public void setTotalCount(int totalCount) { 89 if (totalCount > 0) { 90 this.totalCount = totalCount; 91 setTotalPageCountByRs(); // 根据总记录数计算总页数 92 } 93 } 94 95 /** 96 * 获取总页数 97 * @return 98 */ 99 public int getTotalPageCount() { 100 return totalPageCount; 101 } 102 103 104 /** 105 * 根据总记录条数计算总页数 106 */ 107 private void setTotalPageCountByRs() { 108 if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size == 0) { 109 this.totalPageCount = this.totalCount / this.size; 110 } else if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size > 0) { 111 this.totalPageCount = this.totalCount / this.size + 1; 112 } else { 113 this.totalPageCount = 0; 114 } 115 // 设置展示页数数组 116 setNumbers(totalPageCount); 117 } 118 119 /** 120 * 获取展示页数的数组 121 * @return 122 */ 123 public int[] getNumbers() { 124 return numbers; 125 } 126 127 /** 128 * 设置展示页数的数组 129 * @param numbers 130 */ 131 public void setNumbers(int totalPageCount) { 132 if (totalPageCount > 0) { 133 // 当前数组长度 134 int[] numbers = new int[totalPageCount > 10 ? 10 : totalPageCount]; 135 int k = 0; 136 137 for (int i = 0; i < totalPageCount; i++) { 138 if ((i >= index - (numbers.length / 2 + 1) || i >= totalPageCount - numbers.length) 139 && k < numbers.length) { 140 numbers[k] = i + 1; 141 k++; 142 } else if (k >= numbers.length) { 143 break; 144 } 145 } 146 this.numbers = numbers; 147 } 148 149 } 150 151 /** 152 * 获取要显示到页面的数据集合 153 * @return 154 */ 155 public List<T> getList() { 156 return list; 157 } 158 159 /** 160 * 设置要显示到页面的数据集合 161 * @param list 162 */ 163 public void setList(List<T> list) { 164 this.list = list; 165 } 166 } // end PageBean