`
digyso
  • 浏览: 142177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一种struts分页方法

阅读更多
分页处理的bean类PageableResultSet.java的构造函数参数为一个ResultSet对象,即执行查询语句得到的ResultSet。其具体代码如下:
publicclassPageableResultSet... extends ResultSet{

protectedjava.sql.ResultSetrs=null;

protectedintrowsCount;

protectedintpageSize;

protectedintcurPage;

protectedStringcommand="";

publicPageableResultSet(java.sql.ResultSetrs)
throwsjava.sql.SQLException...{
if(rs==null)
thrownewSQLException("givenResultSetisNULL","user");

rs.last();
//将指针移动到此ResultSet对象的最后一行
rowsCount=rs.getRow();//检索当前行编号
rs.beforeFirst();//将指针移动到此ResultSet对象的开头,正好位于第一行之前

this.rs=rs;
}


/***//**返回当前页号
*/

publicintgetCurPage()...{
returncurPage;
}


/***//**返回总页数
*/

publicintgetPageCount()...{
if(rowsCount==0)
return0;
if(pageSize==0)
return1;
//calculatePageCount
doubletmpD=(double)rowsCount/pageSize;
inttmpI=(int)tmpD;
if(tmpD>tmpI)
tmpI
++;
returntmpI;
}


/***//**返回当前页的记录条数
*/

publicintgetPageRowsCount()...{
if(pageSize==0)
returnrowsCount;
if(getRowsCount()==0)
return0;
if(curPage!=getPageCount())
returnpageSize;
returnrowsCount-(getPageCount()-1)*pageSize;

}


/***//**返回分页大小
*/

publicintgetPageSize()...{
returnpageSize;
}


/***//**返回总记录行数
*/

publicintgetRowsCount()...{
returnrowsCount;
}


/***//**转到指定页
*/

publicvoidgotoPage(intpage)...{
if(rs==null)
return;
if(page<1)
page
=1;
if(page>getPageCount())
page
=getPageCount();
introw=(page-1)*pageSize+1;
try...{
rs.absolute(row);
//将指针移动到此ResultSet对象的给定行编号
curPage=page;
}
catch(java.sql.SQLExceptione)...{
}

}


/***//**
*转到当前页的第一条记录
*
@exceptionjava.sql.SQLException异常说明。
*/

publicvoidpageFirst()throwsSQLException...{
introw=(curPage-1)*pageSize+1;
rs.absolute(row);
}


/***//**
*转到当前页的最后一条记录
*
@exceptionjava.sql.SQLException异常说明。
*/

publicvoidpageLast()throwsSQLException...{
introw=(curPage-1)*pageSize+getPageRowsCount();
rs.absolute(row);
}


/***//**设置分页大小
*/

publicvoidsetPageSize(intpageSize)...{
if(pageSize>=0)...{
this.pageSize=pageSize;
curPage
=1;
}

}

public boolean next() throws SQLException {
// TODO Auto-generated method stub
return rs.next();
}

}

分页action类PageAction.java的关键代码如下:
/**//*
*GeneratedbyMyEclipseStruts
*Templatepath:templates/java/JavaClass.vtl
*/

packagecom.lyt.struts.action;

importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importjavax.sql.DataSource;

importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;

importbean.*;

importcommon.*;

importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.*;
importdao.ApplicationDAO;

/***//**
*MyEclipseStruts
*Creationdate:07-14-2007
*
*XDocletdefinition:
*@struts.actionvalidate="true"
*/

publicclass PageActionextendsAction...{
/**//*
*GeneratedMethods
*/


/***//**
*Methodexecute
*
@parammapping
*
@paramform
*
@paramrequest
*
@paramresponse
*
@returnActionForward
*/

publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
...{

ServletContextcontext
=servlet.getServletContext();
//从配置文件中得到数据源
DataSourcedataSource=(DataSource)context.getAttribute("db");
DBdb
=newDB(dataSource);
HttpSessionsession
=request.getSession();
try...{
request.setCharacterEncoding(
"gb2312");
}
catch(Exceptione)...{
e.printStackTrace();
}

UserBeanuser
=(UserBean)session.getAttribute("usr");
if(user==null)...{
returnmapping.findForward("invalidSession");
}

intstaffId=user.getID();
StringsappType
=request.getParameter("appType");


intappType=Integer.valueOf(sappType).intValue();
ResultSetrs
=ApplicationDAO.getBjsxRS(db,staffId,appType);

intpageNumber=1;
try...{
pageNumber
=Integer.parseInt(request.getParameter("pageNumber"));
}
catch(Exceptione)...{
pageNumber
=1;
}

PageableResultSetprs
=null;
try...{
prs
=newPageableResultSet(rs);
}
catch(Exceptione)...{
e.printStackTrace();
}

prs.setPageSize(
10);
http://images.csdn.net/syntaxhighl
分享到:
评论

相关推荐

    一个高效简洁的Struts分页方法

    本文将深入探讨一种高效且简洁的Struts分页方法,旨在提供一个更加优化的解决方案。 ### 开发环境 本案例采用的开发环境包括:JBuilderx集成开发环境、Weblogic8.1应用服务器、Oracle9i数据库以及Windows2003操作...

    jsp +struts 分页经典

    本项目名为“jsp +struts 分页经典”,显然是一个利用这两种技术实现的分页展示数据的案例。下面我们将深入探讨JSP和Struts框架,以及它们在分页、查询和数据操作中的应用。 首先,JSP是Java平台上的动态网页技术,...

    Struts分页.Struts分页.

    Struts框架提供了一种优雅的方式来实现分页,使得在Java应用程序中实现这一功能变得更加简单。 在传统的Java开发中,实现分页可能涉及到复杂的数据查询、计算总页数、处理请求参数等步骤。然而,Struts通过...

    经典struts2分页方法 JAVA_WEB必备分页 源码

    经典Struts2分页方法是Java Web开发者需要掌握的核心技能之一。 分页的实现通常涉及到以下几个关键知识点: 1. **Action类**:在Struts2中,Action类是处理用户请求的中心。为了实现分页,我们需要创建一个包含...

    ajax+struts分页

    在Ajax+Struts分页中,主要涉及以下几个步骤: 1. **前端页面**:使用JavaScript和HTML构建用户界面。当用户点击分页链接时,会触发Ajax请求,而不是传统的页面跳转。 2. **Ajax请求**:通常使用JavaScript库如...

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    分页是一种常见的技术手段,用于在数据量较大时提高用户体验。其实现的基本思路是将数据分割成多个小部分,每次只显示其中的一部分数据。用户可以通过翻页操作来查看其他部分的数据。 #### Struts2与Hibernate在...

    struts分页算法的实现

    Struts分页算法是Java Web开发中常用的一种技术,它主要用于处理大数据集合的展示,提高网页的加载速度和用户体验。在Struts框架下,我们通常会结合Servlet、JSP和数据库查询来实现分页功能。以下将详细讲解Struts...

    struts2分页代码的示例

    在开发web程序时,从数据库中取出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种比较好的方法。下面是我用Struts2做的一个分页显示...

    分页大全(含JDBC分页 struts分页)

    在IT行业中,分页是一种非常常见的技术,尤其是在处理大量数据时,它能够有效地提高用户体验,减少服务器负担。这里我们将深入探讨“分页大全”,包括JDBC分页、Struts分页以及分页标签的使用。 首先,让我们了解...

    struts2分页效果第二种

    本文将详细介绍Struts2实现分页效果的第二种方法。 在Struts2中,实现分页通常涉及以下几个关键步骤: 1. **模型(Model)**:首先,我们需要一个实体类来存储待分页的数据,例如`User`。然后,创建一个`PageBean`类...

    Struts和Hibernate分页及查询

    在分页查询中,Hibernate提供了一种称为HQL(Hibernate Query Language)的SQL方言,可以方便地实现复杂的查询,包括分页查询。此外,Hibernate还支持Criteria查询,这是一种更加面向对象的查询方式,同样可以实现...

    Hibernate+Struts分页的实现

    在开发Web应用程序时,分页是一种常见的功能,用于提高用户体验并优化系统性能。"Hibernate+Struts分页的实现"这个话题关注的就是如何在大型数据集的场景下,结合这两种技术来有效地实施分页策略。 首先,让我们...

    Struts分页

    Struts分页是一种在Web应用中实现数据展示的高效方式,尤其当数据量较大时,分页能够提高用户体验,避免一次性加载过多数据导致页面响应慢。Struts是Apache的一个开源框架,它主要用于构建基于Java EE的Web应用。...

    hibernate+struts后台分页

    其中,Criteria API提供了一种类型安全的方式来构建查询,支持动态构建查询条件,非常适合后台分页。例如,我们可以使用`setFirstResult`和`setMaxResults`方法来指定当前页的起始位置和每页记录数。 ```java ...

    struts写的分页

    分页是一种常见的用户界面技术,用于将大量数据分割成较小、可管理的部分,让用户逐步浏览。在Struts中实现分页,我们需要以下几个关键步骤: 1. **配置Action类**:首先,我们需要创建一个Struts Action类,这个类...

    Hibernate+struts分页

    本项目“Hibernate+Struts分页”是针对基于Sqlserver2000数据库的应用程序设计的,它整合了两个流行的Java开发框架——Hibernate(持久层框架)和Struts(MVC框架),以实现高效且用户友好的数据浏览功能。...

    struts做的一个简单的分页功能

    1. **分页基础概念**:分页是一种用户界面技术,用于将大量数据分成可管理的小块,每次只显示一部分,用户可以通过导航按钮浏览更多内容。这减轻了服务器压力,同时也提高了页面加载速度。 2. **Struts框架中的分页...

    hibernate+struts分页

    Hibernate提供了一种方便的查询API,即HQL(Hibernate Query Language),它可以支持分页查询。在HQL中,我们可以使用`setFirstResult()`和`setMaxResults()`方法来实现分页。 假设我们有一个User实体,想要查询第...

    struts2.0实现的数据分页实现及实现分页步骤

    Struts2.0 是一个流行的Java Web开发框架,它提供了一种组织和控制MVC(Model-View-Controller)架构的方式,使得开发者可以更高效地构建动态Web应用程序。数据分页是Web应用中常见的需求,特别是在处理大量数据时,...

    struts分页--PageDemo分页.rar

    它提供了一种组织应用程序的方式,使得开发者可以更方便地构建可维护、可扩展的Web应用。在Struts框架中,实现分页功能对于处理大量数据展示至关重要,能够提高用户体验并减轻服务器压力。 "PageDemo"这个例子很...

Global site tag (gtag.js) - Google Analytics