/**
* 标记页数、页码的实体类(分页实体类)
*/
public class PaginationData{
private int recordCount; // 数据条数总数
private int pageCount; // 页面总数
private int index = 1; // 当前页
private int pageSize = 10; // 每页显示多少条数据
private int displayNum = 10; // 显示多少个页码
private int[] pageNums; // 记录数组的页码
private boolean frontEllipsis; // 前省略号
private boolean afterEllipsis; // 后省略号
// get,set方法
public int getRecordCount() {
return recordCount;
}
public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getIndex() {
if(index <= 0){
return 1;
} else {
return index <= 0 ? 1 : index;
}
}
public void setIndex(int index) {
this.index = index;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getDisplayNum() {
return displayNum;
}
public void setDisplayNum(int displayNum) {
this.displayNum = displayNum;
}
public int[] getPageNums() {
return pageNums;
}
public void setPageNums(int[] pageNums) {
this.pageNums = pageNums;
}
public boolean isFrontEllipsis() {
return frontEllipsis;
}
public void setFrontEllipsis(boolean frontEllipsis) {
this.frontEllipsis = frontEllipsis;
}
public boolean isAfterEllipsis() {
return afterEllipsis;
}
public void setAfterEllipsis(boolean afterEllipsis) {
this.afterEllipsis = afterEllipsis;
}
/**
* 用来综合生成页面信息的方法
*/
public void setPageInfo() {
/*
* 在这个方法里,我们要确定页码数组,并且确定是否右前后省略号
*/
// 计算总页数
pageCount = (recordCount + (pageSize - 1)) / pageSize;
// 前后都没有省略号,总页数不大于要显示的页数
if (pageCount <= displayNum) {
this.frontEllipsis = false;// 没有前省略号
this.afterEllipsis = false;// 没有后省略号
this.pageNums = new int[pageCount];// 初始化数组,制定数组的长度
for (int i = 0; i < this.pageNums.length; i++) {// 给数组的每一个元素赋值
this.pageNums[i] = i + 1;
}
// 总页数大于要显示的页数,前后都有省略号
} else if ((index - (displayNum / 2) >= 1)
&& (index + (displayNum / 2) + 1 <= pageCount)) {
this.frontEllipsis = true;// 有前省略号
this.afterEllipsis = true;// 有后省略号
this.pageNums = new int[displayNum];// 初始化数组,制定数组的长度
for (int i = 0, j = index - (displayNum / 2 - 1); i < this.pageNums.length; i++, j++) {// 给数组的每一个元素赋值
this.pageNums[i] = j;
}
// 总页数大于要显示的页数,后有省略号,前没有省略号
} else if (index - (displayNum / 2) < 1) {
this.frontEllipsis = false;// 无前省略号
this.afterEllipsis = true;// 有后省略号
this.pageNums = new int[displayNum];// 初始化数组,制定数组的长度
for (int i = 0; i < this.pageNums.length; i++) {// 给数组的每一个元素赋值
this.pageNums[i] = i + 1;
}
// 总页数大于要显示的页数,有前省略号,无后省略号
} else if (index + (displayNum / 2) + 1 > pageCount) {
this.frontEllipsis = true;// 有前省略号
this.afterEllipsis = false;// 无后省略号
this.pageNums = new int[displayNum];// 初始化数组,制定数组的长度
for (int i = 0; i < this.pageNums.length; i++) {// 给数组的每一个元素赋值
this.pageNums[i] = (pageCount - displayNum + 1) + i;
}
}
}
}