`

分页Bean

阅读更多
package com;
import java.util.*;

/**
* @作者 梁小江
* 分页显示逻辑Bean
* 2008-10-15
*/

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

    public PageBean() {
    }

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

    //设置前一页相关信息
    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 void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public String getCurrentPage() {
        return this.toString(currentPage);
    }

    //设置与返回每页记录数
    public void setPageRecorders(int pageRecorders) {
        this.pageRecorders = pageRecorders;
    }

    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 void setHasNextPage(boolean hasNextPage) {
        this.hasNextPage = hasNextPage;
    }

    public boolean isHasNextPage() {
        return hasNextPage;
    }

    //获得和返回是否有上一页
    public void setHasPreviousPage(boolean hasPreviousPage) {
        this.hasPreviousPage = hasPreviousPage;
    }

    public boolean isHasPreviousPage() {
        return hasPreviousPage;
    }

    //将整型转换成字符串
    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);
    }
}
分享到:
评论

相关推荐

    Java海量数据分页Bean

    Java海量数据分页Bean, 适用于Oracle(适当修改,适用于任何数据库).功能描述:传入到达页码(具有容错性)、每页记录数、Select查询语句,返回该页所有的记录(整页是List集合,每条记录是一个 HashMap)、总行数、总...

    可重用的分页Bean

    "可重用的分页Bean"是一个设计精良的组件,它基于经典的三层架构(表现层、业务逻辑层、数据访问层)来实现,可以方便地在JSP MVC(模型-视图-控制器)框架中复用,提高代码的可维护性和效率。在这个PageBeanDemo中...

    分页bean

    分页bean java

    java分页bean的实现

    分页使用的一个bean,提供翻页和设置当前页,页跳转等

    jsp分页bean

    **JSP分页Bean**是Java Web开发中一个常见的组件,用于处理大量数据的展示问题。在网页上显示成百上千的数据一次性加载不仅会影响用户体验,也会对服务器性能造成压力。因此,分页技术应运而生,它允许用户逐页浏览...

    一个分页Bean(Java)

    分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页

    jsp+sql +bean 分页

    通过jsp 技术实现分页技术 更加有效的便于查询 简单的数据库创建

    Jsp+bean 实战分页教程

    分页Bean主要负责存储和管理分页所需的参数,如总记录数、每页记录数、当前显示页码和总页数。在`pageNumber.java`中,定义了以下方法: 1. `setRowCount(int n)`:设置总记录数。 2. `getRowCount()`:获取总记录...

    javabean分页

    javabean的简单留言分页希望可以有助于java的初学者

    分页JavaBean

    利用该类可以轻松进行分页操作,我已经将代码已经编译好了,欢迎大家去下载,如果有不懂得地方请联系我啊

    javabean分页的例子

    javabean分页程序,适合初学jsp的朋友 &lt;br&gt;1、数据库表中有GoodsType表 2、新建TypeList.jsp页面 3、新建GoodsType的实体类 4、新建GoodsTypeDAO的操作类 5、在BusinessDelegate类中注册相应的方法...

    jsp中分页显示的bean

    一个简单的分页Bean可能包含以下属性和方法: - `currentPage`:当前页数 - `totalPages`:总页数 - `pageSize`:每页显示的数据条数 - `getDataList(int pageNum)`:根据当前页数获取对应页的数据列表 - `...

    前台Java通用分页详解描述下

    为了使前后端交互更加规范,我们可以自定义一个分页Bean,包含总记录数、当前页数、每页大小以及数据列表等字段。例如: ```java public class PageBean&lt;T&gt; { private int total; private int currentPage; ...

    AJAX+Struts+简单DAO工厂模式分页源代码

    -AJAX整合Struts无刷新分页.IE和FireFox都能运行 -在Eclipse3.1+MyEclipse4.3+TomCat5.5.12下测试通过 -在Eclipse3.3+MyEclipse6.0.1+TomCat5.5.15下测试通过 -注释详细 -希望初学者能有所收获,高手...

    分页的辅助Bean

    分页的辅助bean,实现jsp页面的分页控制

    java+bean分页技术

    在本主题“java + bean 分页技术”中,我们将深入探讨如何利用Java Bean实现高效的分页功能,这在处理大量数据时特别重要,能够提高网页的加载速度并优化用户体验。 分页技术的基本思想是将大数据集分割成多个小...

    jsp相关页面显示

    Servlet还会创建一个分页Bean对象(PageBean),并将所有必要的属性填充进去,再将其传递回JSP页面。 分页Bean的设计是整个过程中的一个重要环节。它是一个Java类,如`PageBean&lt;T&gt;`,用于封装分页所需的所有信息,...

    SSH分页技术

    按照 文档中的的内容轻松实现SSH分页,文档中包含 了 分页bean。直接复制即可使用。有详细的类和方法说明。

    jsp bean 分页实现

    在本场景中,我们关注的是如何使用Bean来实现数据库内容的分页显示。分页是一种有效的数据管理策略,它能够帮助用户更有效地浏览大量数据,而不会一次性加载所有记录,从而提高页面加载速度和用户体验。 首先,我们...

    jbpm与OA项目(六).pdf

    分页Bean的构造方法通过计算生成所需信息,特别是`startIndex`和`endIndex`的动态计算,确保在有限的显示范围内提供合适的页面索引。同时,根据页面总数与显示页面索引数量的关系调整起始和结束索引,保证了分页导航...

Global site tag (gtag.js) - Google Analytics