JavaWeb分页-----PageBean.java

  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
原文地址:https://www.cnblogs.com/hejjon/p/10991800.html