cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package cn.ksource.core.util;
 
import java.io.Serializable;
import java.util.List;
 
@SuppressWarnings("serial")
public class PageBeanUtil<T> implements Serializable
{
         private List<T> list;        //要返回的某一页的记录列表
         
         private long allRow;         //总记录数
         private int totalPage;        //总页数
         private int currentPage;    //当前页
         private int pageSize;        //每页记录数
         private int stratPage;        //滚动条开始页码
         private int endPage;        //滚动条结束页码
         private final int pageList=10; //滚动条长度
         
         private boolean isFirstPage;    //是否为第一页
         private boolean isLastPage;        //是否为最后一页
         private boolean hasPreviousPage;    //是否有前一页
         private boolean hasNextPage;        //是否有下一页
         
         
          public List<T> getList() {
             return list;
         }
          public void setList(List<T> list) {
             this.list = list;
         }
          public long getAllRow() {
             return allRow;
         }
          public void setAllRow(long allRow) {
             this.allRow = allRow;
         }
          public int getTotalPage() {
             return totalPage;
         }
          public void setTotalPage(int totalPage) {
             this.totalPage = totalPage;
         }
          public int getCurrentPage() {
             return currentPage;
         }
          public void setCurrentPage(int currentPage) {
             this.currentPage = currentPage;
         }
          public int getPageSize() {
             return pageSize;
         }
          public void setPageSize(int pageSize) {
             this.pageSize = pageSize;
         }
         
          /**
          * 初始化分页信息
          */
          public void init(){
             this.isFirstPage = isFirstPage();
             this.isLastPage = isLastPage();
             this.hasPreviousPage = isHasPreviousPage();
             this.hasNextPage = isHasNextPage();
         }
         
          /**
          * 以下判断页的信息,只需getter方法(is方法)即可
          * @return
          */
         
          public boolean isFirstPage() {
             return currentPage == 1;    // 如是当前页是第1页
         }
          public boolean isLastPage() {
             return currentPage == totalPage;    //如果当前页是最后一页
         }
          public boolean isHasPreviousPage() {
             return currentPage != 1;        //只要当前页不是第1页
         }
          public boolean isHasNextPage() {
             return currentPage != totalPage;    //只要当前页不是最后1页
         }
         
         
          /**
          * 计算总页数,静态方法,供外部直接通过类名调用
          * @param pageSize 每页记录数
          * @param allRow 总记录数
          * @return 总页数
          */
          public static int countTotalPage(final int pageSize,final long allRow){
             int totalPage = (int) (allRow % pageSize == 0 ? allRow/pageSize : allRow/pageSize+1);
             return totalPage;
         }
         
          /**
          * 计算当前页开始记录
          * @param pageSize 每页记录数
          * @param currentPage 当前第几页
          * @return 当前页开始记录号
          */
          public static int countOffset(final int pageSize,final int currentPage){
             final int offset = pageSize*(currentPage-1);
             return offset;
         }
         
          /**
          * 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替
          * @param page 传入的参数(可能为空,即0,则返回1)
          * @return 当前页
          */
          public static int countCurrentPage(int page){
             final int curPage = (page==0?1:page);         
             return curPage;
         }
 
        public int getStratPage() {
 
            if(this.currentPage>this.pageList/2){
                if((totalPage-currentPage)<5&&totalPage>10){
                    return this.stratPage=totalPage-9;
                }
                return this.stratPage=this.currentPage-4;
            }
            else
            {
                return this.stratPage = 1;
            }
        }
        public int getEndPage() {
            if(this.totalPage<this.pageList){
                return this.endPage=this.totalPage;
            }
            else{
                if((totalPage-currentPage)<5){
                    return this.endPage=totalPage;
                }
                return this.endPage = this.stratPage+9;    
            }
        }
}