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