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, 适用于Oracle(适当修改,适用于任何数据库).功能描述:传入到达页码(具有容错性)、每页记录数、Select查询语句,返回该页所有的记录(整页是List集合,每条记录是一个 HashMap)、总行数、总...
"可重用的分页Bean"是一个设计精良的组件,它基于经典的三层架构(表现层、业务逻辑层、数据访问层)来实现,可以方便地在JSP MVC(模型-视图-控制器)框架中复用,提高代码的可维护性和效率。在这个PageBeanDemo中...
分页bean java
分页使用的一个bean,提供翻页和设置当前页,页跳转等
**JSP分页Bean**是Java Web开发中一个常见的组件,用于处理大量数据的展示问题。在网页上显示成百上千的数据一次性加载不仅会影响用户体验,也会对服务器性能造成压力。因此,分页技术应运而生,它允许用户逐页浏览...
分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页分页 分页
通过jsp 技术实现分页技术 更加有效的便于查询 简单的数据库创建
分页Bean主要负责存储和管理分页所需的参数,如总记录数、每页记录数、当前显示页码和总页数。在`pageNumber.java`中,定义了以下方法: 1. `setRowCount(int n)`:设置总记录数。 2. `getRowCount()`:获取总记录...
javabean的简单留言分页希望可以有助于java的初学者
利用该类可以轻松进行分页操作,我已经将代码已经编译好了,欢迎大家去下载,如果有不懂得地方请联系我啊
javabean分页程序,适合初学jsp的朋友 <br>1、数据库表中有GoodsType表 2、新建TypeList.jsp页面 3、新建GoodsType的实体类 4、新建GoodsTypeDAO的操作类 5、在BusinessDelegate类中注册相应的方法...
一个简单的分页Bean可能包含以下属性和方法: - `currentPage`:当前页数 - `totalPages`:总页数 - `pageSize`:每页显示的数据条数 - `getDataList(int pageNum)`:根据当前页数获取对应页的数据列表 - `...
为了使前后端交互更加规范,我们可以自定义一个分页Bean,包含总记录数、当前页数、每页大小以及数据列表等字段。例如: ```java public class PageBean<T> { private int total; private int currentPage; ...
-AJAX整合Struts无刷新分页.IE和FireFox都能运行 -在Eclipse3.1+MyEclipse4.3+TomCat5.5.12下测试通过 -在Eclipse3.3+MyEclipse6.0.1+TomCat5.5.15下测试通过 -注释详细 -希望初学者能有所收获,高手...
分页的辅助bean,实现jsp页面的分页控制
在本主题“java + bean 分页技术”中,我们将深入探讨如何利用Java Bean实现高效的分页功能,这在处理大量数据时特别重要,能够提高网页的加载速度并优化用户体验。 分页技术的基本思想是将大数据集分割成多个小...
Servlet还会创建一个分页Bean对象(PageBean),并将所有必要的属性填充进去,再将其传递回JSP页面。 分页Bean的设计是整个过程中的一个重要环节。它是一个Java类,如`PageBean<T>`,用于封装分页所需的所有信息,...
按照 文档中的的内容轻松实现SSH分页,文档中包含 了 分页bean。直接复制即可使用。有详细的类和方法说明。
在本场景中,我们关注的是如何使用Bean来实现数据库内容的分页显示。分页是一种有效的数据管理策略,它能够帮助用户更有效地浏览大量数据,而不会一次性加载所有记录,从而提高页面加载速度和用户体验。 首先,我们...
分页Bean的构造方法通过计算生成所需信息,特别是`startIndex`和`endIndex`的动态计算,确保在有限的显示范围内提供合适的页面索引。同时,根据页面总数与显示页面索引数量的关系调整起始和结束索引,保证了分页导航...