⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 partitionpage.java

📁 &#61553 网站前台 商品销售排行
💻 JAVA
字号:
package mrgf.other;

import java.util.*;

/**
 * @作者 马文强
 * 分页显示逻辑Bean
 * 2006-8-8
 */

public class PartitionPage {
    public PartitionPage() {
    }

    private int currentPage = 1; //当前页
    private int totalPages = 0; //总页数
    private int pageRecorders = 0; //每页几条数据
    private int totalRows = 0; //总数据数
    private int pageStartRow = 0; //每页的起始数
    private int pageEndRow = 0; //每页显示数据的终止数
    private boolean hasPreviousPage = false; //是否有前一页
    private boolean hasNextPage = false; //是否有下一页
    private List messages; //要分页的数据

    //初始化页面信息参数
    public void initPageBean(List messages, int pageRecorders) {
        this.messages = messages;
        this.pageRecorders = pageRecorders;
        this.currentPage = 1;
        totalRows = messages.size();
        //计算总页数
        if ((totalRows % pageRecorders) == 0) {
            totalPages = totalRows / pageRecorders;
        } else {
            totalPages = totalRows / pageRecorders + 1;
        }
        //默认无上一页
        this.hasPreviousPage=false;
        //判断是否有下一页
        if (currentPage >= totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }
        //确定第一页结束的记录数
        if (totalRows < pageRecorders) {
            this.pageEndRow = totalRows;
        } else {
            this.pageEndRow = pageRecorders;
        }
    }

    //设置指定页相关信息
    public ArrayList getAppointPage(int currentPage) {
        this.currentPage = currentPage;
        //判断指定页码是否超出范围
        if (currentPage <= 0) {
            currentPage = 1;
        }
        if (currentPage > totalPages) {
            currentPage = totalPages;
        }

        if (currentPage == totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }
        if (currentPage > 1) {
            hasPreviousPage = true;
        } else {
            hasPreviousPage = false;
        }
        ArrayList pageMessages = this.getPageMessages();
        return pageMessages;
    }

    //设置前一页相关信息
    public ArrayList getPreviousPage() {
        currentPage = currentPage - 1;
        if (currentPage == 0) {
            currentPage = 1;
        }
        if (currentPage >= totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }
        if ((currentPage - 1) > 0) {
            hasPreviousPage = true;
        } else {
            hasPreviousPage = false;
        }
        ArrayList pageMessages = this.getPageMessages();
        return pageMessages;
    }

    //设置下一页相关信息
    public ArrayList getNextPage() {
        currentPage = currentPage + 1;
        if (currentPage > totalPages) {
            currentPage = totalPages;
        }
        if ((currentPage - 1) > 0) {
            hasPreviousPage = true;
        } else {
            hasPreviousPage = false;
        }
        if (currentPage >= totalPages) {
            hasNextPage = false;
        } else {
            hasNextPage = true;
        }
        ArrayList pageMessages = this.getPageMessages();
        return pageMessages;
    }

    //封装页面信息
    public ArrayList getPageMessages() {
        if (currentPage * pageRecorders < totalRows) {
            pageEndRow = currentPage * pageRecorders;
            pageStartRow = pageEndRow - pageRecorders;
        } else {
            pageEndRow = totalRows;
            pageStartRow = pageRecorders * (totalPages - 1);
        }
        ArrayList pageMessages = new ArrayList(pageEndRow - pageStartRow + 1);
        if (!(totalRows == 0)) {
            int j = 0;
            for (int i = pageStartRow; i < pageEndRow; i++) {
                Object dataVO = (Object) messages.get(i);
                pageMessages.add(dataVO);
            }
//            this.description();
        }
        return pageMessages;
    }

    //返回当前页
    public String getCurrentPage() {
        return this.toString(currentPage);
    }

    //返回每页记录数
    public int getPageRecorders() {
        return pageRecorders;
    }

    //返回每页开始与结束的记录数
    public int getPageStartRow() {
        return pageStartRow;
    }

    public int getPageEndRow() {
        return pageEndRow;
    }

    //返回总页数
    public String getTotalPages() {
        return this.toString(totalPages);
    }

    //返回总记录数
    public String getTotalRows() {
        return this.toString(totalRows);
    }

    //返回是否有上一页
    public boolean isHasPreviousPage() {
        return hasPreviousPage;
    }

    //返回是否有下一页
    public boolean isHasNextPage() {
        return hasNextPage;
    }

    //将整型转换成字符串
    public String toString(int temp) {
        String str = Integer.toString(temp);
        return str;
    }

    //信息描述,供测试用
    public void description() {
        System.out.println("------要显示的页面数据已经封装,具体信息如下:");
        String description = "------共有数据数:" + this.getTotalRows() +
                             " / 共有页数:" + this.getTotalPages() +
                             " / 当前页数为:" + this.getCurrentPage() +
                             " / 是否有前一页:" + this.isHasPreviousPage() +
                             " / 是否有下一页:" + this.isHasNextPage() +
                             " / 本页开始行数:" + this.getPageStartRow() +
                             " / 本页终止行数:" + this.getPageEndRow();
        System.out.println(description);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -