package student_info.commons;
import student_info.model.beans.S_I_Bean;
import java.util.*;
/**
* @作者 李敏强
* Struts分页显示逻辑Bean
*/
public class PageBean {
int currentPage=1; //当前页
public int totalPages=0; //总页数
int pageRecorders=5;//每页5条数据
int totalRows=0; //总数据数
int pageStartRow=0;//每页的起始数
int pageEndRow=0; //每页显示数据的终止数
boolean hasNextPage=false; //是否有下一页
boolean hasPreviousPage=false; //是否有前一页
ArrayList arrayList;
Iterator it;
public PageBean(){}
public PageBean(ArrayList arrayList){
this.arrayList=arrayList;
totalRows=arrayList.size();//bean的个数
it=arrayList.iterator();
hasPreviousPage=false;
currentPage=1;
if((totalRows%pageRecorders)==0)
{
totalPages=totalRows/pageRecorders;
}
else
{
totalPages=totalRows/pageRecorders+1;
}
if(currentPage>=totalPages)
{
hasNextPage=false;
}
else
{
hasNextPage=true;
}
if(totalRows<pageRecorders)
{
this.pageStartRow=0;
this.pageEndRow=totalRows;
}
else
{
this.pageStartRow=0;
this.pageEndRow=pageRecorders;
}
}
/**
* @return Returns the currentPage.
*/
public String getCurrentPage() {
return this.toString(currentPage);
}
/**
* @param currentPage The currentPage to set.
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* @return Returns the pageRecorders.
*/
public int getPageRecorders() {
return pageRecorders;
}
/**
* @param pageRecorders The pageRecorders to set.
*/
public void setPageRecorders(int pageRecorders) {
this.pageRecorders = pageRecorders;
}
/**
* @return Returns the pageEndRow.
*/
public int getPageEndRow() {
return pageEndRow;
}
/**
* @return Returns the pageStartRow.
*/
public int getPageStartRow() {
return pageStartRow;
}
/**
* @return Returns the totalPages.
*/
public String getTotalPages() {
return this.toString(totalPages);
}
/**
* @return Returns the totalRows.
*/
public String getTotalRows() {
return this.toString(totalRows);
}
/**
* @return Returns the hasNextPage.
*/
public boolean isHasNextPage() {
return hasNextPage;
}
/**
* @param hasNextPage The hasNextPage to set.
*/
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
/**
* @return Returns the hasPreviousPage.
*/
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
/**
* @param hasPreviousPage The hasPreviousPage to set.
*/
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public S_I_Bean[] getNextPage(){
currentPage=currentPage+1;
System.out.println("PageBean.getNextPage()正在执行;");
System.out.println("参数currentPage="+currentPage);
if((currentPage-1)>0){
hasPreviousPage=true;
}
else{
hasPreviousPage=false;
}
if(currentPage>=totalPages) {
hasNextPage=false;
}
else{
hasNextPage=true;
}
System.out.println("参数hasNextPage="+hasNextPage);
System.out.println("准备执行PageBean.getAddressBooks()");
S_I_Bean[] sibeans=getS_I_Beans();
this.description();
return sibeans;
}
public S_I_Bean[] 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;
}
S_I_Bean[] sibeans=getS_I_Beans();
this.description();
return sibeans;
}
public S_I_Bean[] getS_I_Beans(){
System.out.println("pageBean.getBooks()开始执行;");
if(currentPage*pageRecorders<totalRows){//判断是否为最后一页
pageEndRow=currentPage*pageRecorders;
pageStartRow=pageEndRow-pageRecorders;
}
else{
pageEndRow=totalRows;
pageStartRow=pageRecorders*(totalPages-1);
}
S_I_Bean[] sibeans=new S_I_Bean[pageEndRow-pageStartRow+1];
System.out.println("pageStartRow="+pageStartRow);
System.out.println("pageEndRow="+pageEndRow);
int j=0;
for(int i=pageStartRow;i<pageEndRow;i++)
{
S_I_Bean sibean=(S_I_Bean)arrayList.get(i);
sibeans[j++]=sibean;
}
System.out.println("要显示的页面数据已经封装,具体信息如下:");
this.description();
return sibeans;
}
public String toString(int temp)
{
String str=Integer.toString(temp);
return str;
}
public void description()
{
String description="共有数据数:"+this.getTotalRows()+
"共有页数: "+this.getTotalPages() +
"当前页数为:"+this.getCurrentPage()+
" 是否有前一页: "+this.isHasPreviousPage() +
" 是否有下一页:"+this.isHasNextPage()+
" 开始行数:"+this.getPageStartRow()+
" 终止行数:"+this.getPageEndRow();
System.out.println(description);
}
}
struts分页.rar
需积分: 0 97 浏览量
更新于2008-09-05
收藏 3KB RAR 举报
Struts分页是Java Web开发中的一个重要概念,主要用于在用户界面上展示大量数据时进行有效管理,提升用户体验。Struts框架,由Apache软件基金会开发,是一个用于构建MVC(Model-View-Controller)架构的开源Java框架。在这个“struts分页.rar”压缩包中,包含了一个基本的Struts实现分页的示例。
1. **PageBean.java**: 这个文件通常会定义一个Java Bean,用于封装分页的相关信息,如当前页数、总页数、每页显示的数据数量等。PageBean可能包含以下属性和方法:
- `currentPage`:当前页码
- `totalPages`:总页数
- `pageSize`:每页显示的记录数
- `totalRecords`:总记录数
- `getters` 和 `setters`:获取和设置这些属性的值
- 可能还有其他辅助方法,例如计算总页数、检查当前页是否合法等
2. **PageListAction.java**: 这是一个Struts Action类,处理用户的请求并返回相应的视图。在分页场景下,它通常负责从数据库查询数据,并根据PageBean中的参数来确定要显示哪一部分数据。Action类可能包含以下操作:
- `execute` 方法:这是Struts的核心方法,根据用户的请求(如页码)从数据库获取相应页面的数据,然后将结果封装到PageBean中。
- 可能还包括与数据库交互的方法,如`queryByPage`,该方法使用SQL的LIMIT和OFFSET子句来实现分页查询。
3. **pagetest.jsp**: 这是一个JSP(Java Server Pages)文件,用于展示分页结果和提供导航链接。它通过Struts标签库(如`<s:property>`和`<s:url>`)访问PageBean的属性,并生成相应的HTML输出。常见元素可能包括:
- 显示当前页和总页数的信息
- 分页链接,让用户可以跳转到前一页、后一页或特定页
- 可能还有其他用户界面元素,如每页显示记录数的选择器
实现Struts分页的关键在于正确配置Struts的配置文件(struts-config.xml),定义Action和ActionForm,以及确保数据库查询支持分页。此外,还需要考虑性能优化,比如使用缓存来减少数据库访问,或者在用户无操作时自动加载下一页,提升用户体验。
这个压缩包提供了一个基础的Struts分页实现,可以帮助开发者了解如何在实际项目中集成分页功能。通过研究和理解这三个文件,你可以学习到如何在Struts框架下处理用户请求、与数据库交互以及构建动态的用户界面。
takeyzhou
- 粉丝: 0
- 资源: 10
最新资源
- 6吨级轻型载货汽车驱动桥的设计及虚拟装配 (1)
- Springboot 学生管理系统更删改查
- 九缸星形发动机点火器3D
- 毕业设计-宿舍管理系统设计与实现
- 全面详解Ruby编程语言,从入门到高级实战
- CC2530无线zigbee裸机代码实现红外遥控器接收IRDecod、串口打印UART、12864液晶屏显示例程.zip
- 跨平台的云端爬虫系统项目全套技术资料.zip
- CC2530无线zigbee裸机代码实现红外遥控发送、串口打印、LCD12864液晶屏、按键程序.zip
- Delphi编程语言从基础知识到高级应用全面指南
- Scratch图形化编程语言入门与进阶指南
- 酒店后台管理系统项目全套技术资料.zip
- CC2530无线zigbee裸机代码实现RS485串口通讯.zip
- Day-03 Vue222222222222222222222
- Visual Basic语言入门与进阶教程
- 数据安全治理白皮书6.0-2024年最新版
- 基于pygame的圣诞小游戏