看到大家对struts的学习热情很高,而且这方面的资料很少,看着大家很累,所以发发善心,看到很好的一种分页方法,就贴出来大家共同分享!(原作在javaworld),有不完善的地方,希望大家改正!!!
使用一个页面控制类,它记录页面信息,如上页,下页,当前页等。在查询的Action中,将这个控制类和查询条件一起传递给数据库访问bean,然后将这两个参数保存在用户session中。在分页控制Action中,利用接收到的分页参数调用数据库访问的bean.
(1)分页控制类<!----><o:p></o:p>
package com.tower.util;
public class PageController {
int totalRowsAmount; file://总行数
boolean rowsAmountSet; file://是否设置过totalRowsAmount
int pageSize=2; file://每页行数
int currentPage=1; file://当前页码
int nextPage;
int previousPage;
int totalPages; file://总页数
boolean hasNext; file://是否有下一页
boolean hasPrevious; file://是否有前一页
String description;
int pageStartRow;
int pageEndRow;
public PageController(int totalRows){
setTotalRowsAmount(totalRows);
}
public PageController(){}
public void setTotalRowsAmount(int i) {
if(!this.rowsAmountSet){
totalRowsAmount = i;
totalPages=totalRowsAmount/pageSize+1;
setCurrentPage(1);
this.rowsAmountSet=true;
}
}
public void setCurrentPage(int i) {
currentPage = i;
nextPage=currentPage+1;
previousPage=currentPage-1;
file://计算当前页开始行和结束行
if(currentPage*pageSize<totalRowsAmount){
pageEndRow=currentPage*pageSize;
pageStartRow=pageEndRow-pageSize+1;
}else{
pageEndRow=totalRowsAmount;
pageStartRow=pageSize*(totalPages-1)+1;
}
if (nextPage>totalPages){
hasNext=false;
}else{
hasNext=true;
}
if(previousPage==0){
hasPrevious=false;
}else{
hasPrevious=true;
};
System.out.println(this.description());
}
public int getCurrentPage() {
return currentPage;
}
public boolean isHasNext() {
return hasNext;
}
public boolean isHasPrevious() {
return hasPrevious;
}
public int getNextPage() {
return nextPage;
}
public int getPageSize() {
return pageSize;
}
public int getPreviousPage() {
return previousPage;
}
public int getTotalPages() {
return totalPages;
}
public int getTotalRowsAmount() {
return totalRowsAmount;
}
public void setHasNext(boolean b) {
hasNext = b;
}
public void setHasPrevious(boolean b) {
hasPrevious = b;
}
public void setNextPage(int i) {
nextPage = i;
}
public void setPageSize(int i) {
pageSize = i;
}
public void setPreviousPage(int i) {
previousPage = i;
}
public void setTotalPages(int i) {
totalPages = i;
}
public int getPageEndRow() {
return pageEndRow;
}
public int getPageStartRow() {
return pageStartRow;
}
public String getDescription(){
String description="Total:"+this.getTotalRowsAmount()+
" items "+this.getTotalPages() +" pages";
// this.currentPage+" Previous "+this.hasPrevious +
// " Next:"+this.hasNext+
// " start row:"+this.pageStartRow+
// " end row:"+this.pageEndRow;
return description;
}
public String description(){
String description="Total:"+this.getTotalRowsAmount()+
" items "+this.getTotalPages() +" pages,Current page:"+
this.currentPage+" Previous "+this.hasPrevious +
" Next:"+this.hasNext+
" start row:"+this.pageStartRow+
" end row:"+this.pageEndRow;
return description;
}
public static void main(String args[]){
PageController pc=new PageController(3);
System.out.println(pc.getDescription());
// pc.setCurrentPage(2);
// System.out.println(pc.description());
// pc.setCurrentPage(3);
// System.out.println(pc.description());
}
分享到:
相关推荐
Struts分页算法是Java Web开发中常用的一种技术,它主要用于处理大数据集合的展示,提高网页的加载速度和用户体验。在Struts框架下,我们通常会结合Servlet、JSP和数据库查询来实现分页功能。以下将详细讲解Struts...
Struts2.0 是一个流行的Java Web开发框架,它提供了一种组织和控制MVC(Model-View-Controller)架构的方式,使得开发者可以更高效地构建动态Web应用程序。数据分页是Web应用中常见的需求,特别是在处理大量数据时,...
分页是一种常见的技术手段,用于在数据量较大时提高用户体验。其实现的基本思路是将数据分割成多个小部分,每次只显示其中的一部分数据。用户可以通过翻页操作来查看其他部分的数据。 #### Struts2与Hibernate在...
本项目名为“jsp +struts 分页经典”,显然是一个利用这两种技术实现的分页展示数据的案例。下面我们将深入探讨JSP和Struts框架,以及它们在分页、查询和数据操作中的应用。 首先,JSP是Java平台上的动态网页技术,...
在IT领域,分页是一种常见的数据展示方式,特别是在处理大量数据时,为了提高用户体验和页面加载速度,我们会将数据分成多个部分(页)进行显示。本篇将介绍如何使用Struts和Hibernate框架来实现Web应用中的分页功能...
在开发Web应用程序时,分页是一种常见的功能,用于提高用户体验并优化系统性能。"Hibernate+Struts分页的实现"这个话题关注的就是如何在大型数据集的场景下,结合这两种技术来有效地实施分页策略。 首先,让我们...
在处理大量数据时,分页是一种常见的优化手段,能够有效地提升用户体验,避免一次性加载过多数据导致的页面响应慢或者内存压力大等问题。下面我们将深入探讨如何在Struts框架下实现分页功能。 首先,我们需要理解...
Struts框架提供了一种优雅的方式来实现分页,使得在Java应用程序中实现这一功能变得更加简单。 在传统的Java开发中,实现分页可能涉及到复杂的数据查询、计算总页数、处理请求参数等步骤。然而,Struts通过...
在Web应用程序中,数据分页是一种常见的功能,用于提高用户体验并优化服务器性能。当我们处理大量数据时,一次性加载所有数据可能会导致页面加载缓慢,甚至内存溢出。因此,数据分页技术应运而生。 **Struts2.0 ...
在开发web程序时,从数据库中取出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种比较好的方法。下面是我用Struts2做的一个分页显示...
在Ajax+Struts分页中,主要涉及以下几个步骤: 1. **前端页面**:使用JavaScript和HTML构建用户界面。当用户点击分页链接时,会触发Ajax请求,而不是传统的页面跳转。 2. **Ajax请求**:通常使用JavaScript库如...
本文将详细介绍Struts2实现分页效果的第二种方法。 在Struts2中,实现分页通常涉及以下几个关键步骤: 1. **模型(Model)**:首先,我们需要一个实体类来存储待分页的数据,例如`User`。然后,创建一个`PageBean`类...
在IT行业中,分页是一种非常常见的技术,尤其是在处理大量数据时,它能够有效地提高用户体验,减少服务器负担。这里我们将深入探讨“分页大全”,包括JDBC分页、Struts分页以及分页标签的使用。 首先,让我们了解...
本文将深入探讨一种高效且简洁的Struts分页方法,旨在提供一个更加优化的解决方案。 ### 开发环境 本案例采用的开发环境包括:JBuilderx集成开发环境、Weblogic8.1应用服务器、Oracle9i数据库以及Windows2003操作...
Struts是一种基于MVC(Model-View-Controller)设计模式的Java Web框架,它帮助开发者构建结构清晰、可维护性高的应用程序。Ajax,全称Asynchronous JavaScript and XML,是一种用于创建动态网页的技术,允许页面在...
Struts是一种基于MVC(Model-View-Controller)设计模式的框架,用于构建企业级的Web应用程序,而DAO(Data Access Object)模式则是为了解耦业务逻辑层和数据访问层,使得数据库操作更加独立,易于维护和扩展。...
1. **分页基础概念**:分页是一种用户界面技术,用于将大量数据分成可管理的小块,每次只显示一部分,用户可以通过导航按钮浏览更多内容。这减轻了服务器压力,同时也提高了页面加载速度。 2. **Struts框架中的分页...
Struts分页是一种在Web应用中实现数据展示的高效方式,尤其当数据量较大时,分页能够提高用户体验,避免一次性加载过多数据导致页面响应慢。Struts是Apache的一个开源框架,它主要用于构建基于Java EE的Web应用。...
在Web应用开发中,为了提供更好的用户体验,无刷新分页已经成为一种常见的需求。本项目采用jQuery、Struts2和Ajax技术实现了这样一个功能,用户可以在不重新加载整个页面的情况下查看不同页的数据,提高了交互效率。...
Struts2分页实现是Web开发中常见的需求,它能够帮助用户更有效地浏览大量数据,提高用户体验。在本文中,我们将深入探讨如何在Struts2框架下实现分页功能。 首先,我们需要理解分页的基本原理。分页的核心是将大...