标记页数页码的实体类(分页实体类)

Posted 小熊会写代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了标记页数页码的实体类(分页实体类)相关的知识,希望对你有一定的参考价值。

/**
 * 标记页数、页码的实体类(分页实体类)
 */
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;
            }
        }
    }
}

以上是关于标记页数页码的实体类(分页实体类)的主要内容,如果未能解决你的问题,请参考以下文章

分页实体类

django 分页 使用类 页码显示

分页实体类:PageBean

java分页查询实体类

MyBatis 3 分页

ElasticSearch - 旅游酒店案例es功能实现