package com.yizhou.common.test;
/**
*
* Copyright @ 2008 YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
* mail: longxx888@163.com
*
*/
public class PageBean {
private int count = 0; // 记录总数
private int pageSize = 20; // 每页显示记录数
private int pageCount = 0; // 总页数
private int page = 1; // 当前页数
private String totalCountSQL;// 得到总记录数sql语句
private String listSQL;// 得到查询记录sql语句
public int getCount() {
return count;
}
public void setCount(int count) {
if (pageSize != 0) {
pageCount = count / pageSize;
if (count % pageSize != 0) {
pageCount++;
}
}
this.count = count;
}
public String getListSQL() {
return listSQL;
}
public void setListSQL(String listSQL) {
this.listSQL = listSQL;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getTotalCountSQL() {
return totalCountSQL;
}
public void setTotalCountSQL(String totalCountSQL) {
this.totalCountSQL = totalCountSQL;
}
}
新建个接口
package com.yizhou.common.test;
import java.io.Serializable;
import java.util.List;
/**
*
* Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
* mail: longxx888@163.com
*
*/
public interface PaginateInterface extends Serializable {
public List getList(PageBean page);
public String getToolsMenu(PageBean page);
public Long getTotalCount(PageBean p, String str[], Object ob2[])
throws Exception;
public Long getTotalCount(PageBean page) throws Exception;
public List getList(PageBean page, String str[], Object ob2[])
throws Exception;
}
package com.yizhou.common.test;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
*分页核心类
* Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
* mail: longxx888@163.com
*
*/
public class Paginate extends HibernateDaoSupport implements PaginateInterface {
/**
* 显示用的分页信息
*/
public String getToolsMenu(PageBean p) {
StringBuffer str = new StringBuffer("");
int next, prev;
prev = p.getPage() - 1;
next = p.getPage() + 1;
if (p.getPage() > 1) {
str
.append("<a href=\"#\" onclick=\"document.forms(0).jumpPage.value=1;document.forms(0).submit();\">首页</a> ");
} else {
//str.append("<a href=\"#\">首页</a> ");
str.append("首页 ");
}
if (p.getPage() > 1) {
str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="
+ prev + ";document.forms(0).submit();'>上页</a> ");
} else {
//str.append("<a href=\"#\">上页</a> ");
str.append("上页 ");
}
if (p.getPage() < p.getPageCount()) {
str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="
+ next + ";document.forms(0).submit();'>下页</a> ");
} else {
//str.append("<a href=\"#\" >下页</a> ");
str.append("下页 ");
}
if (p.getPageCount() > 1 && p.getPage() != p.getPageCount()) {
str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="
+ p.getPageCount()
+ ";document.forms(0).submit();'>末页</a> ");
} else {
//str.append("<a href=\"#\" >末页</a> ");
str.append("末页 ");
}
str.append(" 共" + p.getCount() + "条记录");
str
.append(" 每页<SELECT size=1 name=pagesize onchange='this.form.jumpPage.value=1;this.form.pageSize.value=this.value;this.form.submit();'>");
if (p.getPageSize() == 3) {
str.append("<OPTION value=3 selected>3</OPTION>");
} else {
str.append("<OPTION value=3>3</OPTION>");
}
if (p.getPageSize() == 10) {
str.append("<OPTION value=10 selected>10</OPTION>");
} else {
str.append("<OPTION value=10>10</OPTION>");
}
if (p.getPageSize() == 20) {
str.append("<OPTION value=20 selected>20</OPTION>");
} else {
str.append("<OPTION value=20>20</OPTION>");
}
if (p.getPageSize() == 50) {
str.append("<OPTION value=50 selected>50</OPTION>");
} else {
str.append("<OPTION value=50>50</OPTION>");
}
if (p.getPageSize() == 100) {
str.append("<OPTION value=100 selected>100</OPTION>");
} else {
str.append("<OPTION value=100>100</OPTION>");
}
str.append("</SELECT>");
str.append("条 分" + p.getPageCount() + "页显示 转到");
str
.append("<SELECT size=1 name=Pagelist onchange='this.form.jumpPage.value=this.value;this.form.submit();'>");
for (int i = 1; i < p.getPageCount() + 1; i++) {
if (i == p.getPage()) {
str.append("<OPTION value=" + i + " selected>" + i
+ "</OPTION>");
} else {
str.append("<OPTION value=" + i + ">" + i + "</OPTION>");
}
}
str.append("</SELECT>页");
str.append("<INPUT type=hidden value=" + p.getPage()
+ " name=\"pages\" > ");
str.append("<INPUT type=hidden value=" + p.getPageSize()
+ " name=\"pageSize\"> ");
return str.toString();
}
/**
* 获取总条数
*/
public Long getTotalCount(PageBean p) throws Exception {
List list = getHibernateTemplate().find(p.getTotalCountSQL());
long count = 0;
if (list.size() > 0) {
count = new Long(""+list.get(0));
}
return count;
}
/**
* 查询信息进行分页
*/
public List getList(final PageBean p) {
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session){
Query q = session.createQuery(p.getListSQL());
q.setFirstResult((p.getPage() - 1) * p.getPageSize());
q.setMaxResults(p.getPageSize());
return q.list();
}
});
}
/**
* 查询信息进行分页 带有参数的
*/
public List getList(final PageBean p,final String str[], final Object ob2[]) {
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session){
Query q = session.createQuery(p.getListSQL());
if(str!=null){
for (int i = 0; i < str.length; i++) {
q.setParameter(str[i], ob2[i]);
}
}
q.setFirstResult((p.getPage() - 1) * p.getPageSize());
q.setMaxResults(p.getPageSize());
return q.list();
}
});
}
/**
* 获取总条数 带有参数的
*/
public Long getTotalCount(PageBean p, String str[], Object ob2[])throws Exception {
List list=new ArrayList();
if(str!=null && str.length>0){
list = getHibernateTemplate().findByNamedParam(p.getTotalCountSQL(), str, ob2);
}else{
list=this.getHibernateTemplate().find(p.getTotalCountSQL());
}
long count = 0;
if (list.size() > 0) {
count = (Long)list.get(0);
}
return count;
}
}
Action的调用
package com.yizhou.common.test;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* 分页代码示例 调用
* Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
*/
public class SplitPageAction extends Action {
private PaginateInterface pageinate;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session=request.getSession();
Object obj=session.getAttribute("KDUser");
if(obj!=null){
PageBean pb=new PageBean();
String jumpPage=request.getParameter("jumpPage");
String pageSize=request.getParameter("pageSize");
if(jumpPage!=null && !"".equals(jumpPage) && pageSize!=null && !"".equals(pageSize)){
pb.setPageSize(new Integer(pageSize));
}else{
jumpPage="1";
}
String strSqlCnt="select count(*) from TUsertable";
String strSqlInfo="select u from TUsertable u";
pb.setTotalCountSQL(strSqlCnt);
pb.setListSQL(strSqlInfo);
pb.setPage(new Integer(jumpPage));
pb.setCount(this.pageinate.getTotalCount(pb).intValue());
List listUser=this.pageinate.getList(pb);
request.setAttribute("info", this.pageinate.getToolsMenu(pb));
request.setAttribute("listUser", listUser);
return mapping.findForward("pagelist");
}
return mapping.findForward("error");
}
public PaginateInterface getPageinate() {
return pageinate;
}
public void setPageinate(PaginateInterface pageinate) {
this.pageinate = pageinate;
}
}
spring文件配置
<bean id="pageinate" class="com.kingdo.common.test.Paginate">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean name="/splitPage" class="com.kingdo.common.test.SplitPageAction" singleton="false">
<property name="pageinate">
<ref bean="pageinate" />
</property>
</bean>
JSP中使用
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<html>
<head>
<title>分页演示</title>
<link href="css/list.css" rel="stylesheet" type="text/css" />
<link href="css/table.css" rel="stylesheet" type="text/css" />
</head>
<body> <center><font size="5">分页演示</font></center>
<form action="splitPage.do" method="post" name="splitPageForm">
<input type="hidden" name="jumpPage">
<table width="96%" class="center" border="0" cellpadding="0" cellspacing="0">
<tr class="table_tr">
<td >
<table cla
/**
*
* Copyright @ 2008 YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
* mail: longxx888@163.com
*
*/
public class PageBean {
private int count = 0; // 记录总数
private int pageSize = 20; // 每页显示记录数
private int pageCount = 0; // 总页数
private int page = 1; // 当前页数
private String totalCountSQL;// 得到总记录数sql语句
private String listSQL;// 得到查询记录sql语句
public int getCount() {
return count;
}
public void setCount(int count) {
if (pageSize != 0) {
pageCount = count / pageSize;
if (count % pageSize != 0) {
pageCount++;
}
}
this.count = count;
}
public String getListSQL() {
return listSQL;
}
public void setListSQL(String listSQL) {
this.listSQL = listSQL;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getTotalCountSQL() {
return totalCountSQL;
}
public void setTotalCountSQL(String totalCountSQL) {
this.totalCountSQL = totalCountSQL;
}
}
新建个接口
package com.yizhou.common.test;
import java.io.Serializable;
import java.util.List;
/**
*
* Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
* mail: longxx888@163.com
*
*/
public interface PaginateInterface extends Serializable {
public List getList(PageBean page);
public String getToolsMenu(PageBean page);
public Long getTotalCount(PageBean p, String str[], Object ob2[])
throws Exception;
public Long getTotalCount(PageBean page) throws Exception;
public List getList(PageBean page, String str[], Object ob2[])
throws Exception;
}
package com.yizhou.common.test;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
*分页核心类
* Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
* mail: longxx888@163.com
*
*/
public class Paginate extends HibernateDaoSupport implements PaginateInterface {
/**
* 显示用的分页信息
*/
public String getToolsMenu(PageBean p) {
StringBuffer str = new StringBuffer("");
int next, prev;
prev = p.getPage() - 1;
next = p.getPage() + 1;
if (p.getPage() > 1) {
str
.append("<a href=\"#\" onclick=\"document.forms(0).jumpPage.value=1;document.forms(0).submit();\">首页</a> ");
} else {
//str.append("<a href=\"#\">首页</a> ");
str.append("首页 ");
}
if (p.getPage() > 1) {
str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="
+ prev + ";document.forms(0).submit();'>上页</a> ");
} else {
//str.append("<a href=\"#\">上页</a> ");
str.append("上页 ");
}
if (p.getPage() < p.getPageCount()) {
str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="
+ next + ";document.forms(0).submit();'>下页</a> ");
} else {
//str.append("<a href=\"#\" >下页</a> ");
str.append("下页 ");
}
if (p.getPageCount() > 1 && p.getPage() != p.getPageCount()) {
str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="
+ p.getPageCount()
+ ";document.forms(0).submit();'>末页</a> ");
} else {
//str.append("<a href=\"#\" >末页</a> ");
str.append("末页 ");
}
str.append(" 共" + p.getCount() + "条记录");
str
.append(" 每页<SELECT size=1 name=pagesize onchange='this.form.jumpPage.value=1;this.form.pageSize.value=this.value;this.form.submit();'>");
if (p.getPageSize() == 3) {
str.append("<OPTION value=3 selected>3</OPTION>");
} else {
str.append("<OPTION value=3>3</OPTION>");
}
if (p.getPageSize() == 10) {
str.append("<OPTION value=10 selected>10</OPTION>");
} else {
str.append("<OPTION value=10>10</OPTION>");
}
if (p.getPageSize() == 20) {
str.append("<OPTION value=20 selected>20</OPTION>");
} else {
str.append("<OPTION value=20>20</OPTION>");
}
if (p.getPageSize() == 50) {
str.append("<OPTION value=50 selected>50</OPTION>");
} else {
str.append("<OPTION value=50>50</OPTION>");
}
if (p.getPageSize() == 100) {
str.append("<OPTION value=100 selected>100</OPTION>");
} else {
str.append("<OPTION value=100>100</OPTION>");
}
str.append("</SELECT>");
str.append("条 分" + p.getPageCount() + "页显示 转到");
str
.append("<SELECT size=1 name=Pagelist onchange='this.form.jumpPage.value=this.value;this.form.submit();'>");
for (int i = 1; i < p.getPageCount() + 1; i++) {
if (i == p.getPage()) {
str.append("<OPTION value=" + i + " selected>" + i
+ "</OPTION>");
} else {
str.append("<OPTION value=" + i + ">" + i + "</OPTION>");
}
}
str.append("</SELECT>页");
str.append("<INPUT type=hidden value=" + p.getPage()
+ " name=\"pages\" > ");
str.append("<INPUT type=hidden value=" + p.getPageSize()
+ " name=\"pageSize\"> ");
return str.toString();
}
/**
* 获取总条数
*/
public Long getTotalCount(PageBean p) throws Exception {
List list = getHibernateTemplate().find(p.getTotalCountSQL());
long count = 0;
if (list.size() > 0) {
count = new Long(""+list.get(0));
}
return count;
}
/**
* 查询信息进行分页
*/
public List getList(final PageBean p) {
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session){
Query q = session.createQuery(p.getListSQL());
q.setFirstResult((p.getPage() - 1) * p.getPageSize());
q.setMaxResults(p.getPageSize());
return q.list();
}
});
}
/**
* 查询信息进行分页 带有参数的
*/
public List getList(final PageBean p,final String str[], final Object ob2[]) {
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session){
Query q = session.createQuery(p.getListSQL());
if(str!=null){
for (int i = 0; i < str.length; i++) {
q.setParameter(str[i], ob2[i]);
}
}
q.setFirstResult((p.getPage() - 1) * p.getPageSize());
q.setMaxResults(p.getPageSize());
return q.list();
}
});
}
/**
* 获取总条数 带有参数的
*/
public Long getTotalCount(PageBean p, String str[], Object ob2[])throws Exception {
List list=new ArrayList();
if(str!=null && str.length>0){
list = getHibernateTemplate().findByNamedParam(p.getTotalCountSQL(), str, ob2);
}else{
list=this.getHibernateTemplate().find(p.getTotalCountSQL());
}
long count = 0;
if (list.size() > 0) {
count = (Long)list.get(0);
}
return count;
}
}
Action的调用
package com.yizhou.common.test;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* 分页代码示例 调用
* Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
* All right reserved.
*
* @author xuxinlong
*
*/
public class SplitPageAction extends Action {
private PaginateInterface pageinate;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session=request.getSession();
Object obj=session.getAttribute("KDUser");
if(obj!=null){
PageBean pb=new PageBean();
String jumpPage=request.getParameter("jumpPage");
String pageSize=request.getParameter("pageSize");
if(jumpPage!=null && !"".equals(jumpPage) && pageSize!=null && !"".equals(pageSize)){
pb.setPageSize(new Integer(pageSize));
}else{
jumpPage="1";
}
String strSqlCnt="select count(*) from TUsertable";
String strSqlInfo="select u from TUsertable u";
pb.setTotalCountSQL(strSqlCnt);
pb.setListSQL(strSqlInfo);
pb.setPage(new Integer(jumpPage));
pb.setCount(this.pageinate.getTotalCount(pb).intValue());
List listUser=this.pageinate.getList(pb);
request.setAttribute("info", this.pageinate.getToolsMenu(pb));
request.setAttribute("listUser", listUser);
return mapping.findForward("pagelist");
}
return mapping.findForward("error");
}
public PaginateInterface getPageinate() {
return pageinate;
}
public void setPageinate(PaginateInterface pageinate) {
this.pageinate = pageinate;
}
}
spring文件配置
<bean id="pageinate" class="com.kingdo.common.test.Paginate">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean name="/splitPage" class="com.kingdo.common.test.SplitPageAction" singleton="false">
<property name="pageinate">
<ref bean="pageinate" />
</property>
</bean>
JSP中使用
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<html>
<head>
<title>分页演示</title>
<link href="css/list.css" rel="stylesheet" type="text/css" />
<link href="css/table.css" rel="stylesheet" type="text/css" />
</head>
<body> <center><font size="5">分页演示</font></center>
<form action="splitPage.do" method="post" name="splitPageForm">
<input type="hidden" name="jumpPage">
<table width="96%" class="center" border="0" cellpadding="0" cellspacing="0">
<tr class="table_tr">
<td >
<table cla
相关推荐
总的来说,这个"Struts2+Spring2+Hibernate3注册查询搜索分页实例"是一个很好的学习资源,涵盖了Java Web开发中的基础和核心部分。通过学习这个实例,开发者不仅可以掌握三大框架的基本用法,还能了解到如何将它们...
总的来说,通过Spring、Struts和Hibernate的集成,我们可以构建出一个强大的Web应用框架,其中分页功能的实现主要依赖于Spring管理的SessionFactory、Struts的Action和Spring的IoC容器,以及自定义的PageUtil和Page...
在IT行业中,SSH(Spring、Struts和Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。SSH框架各自负责不同的职责:Spring作为基础框架提供依赖注入和事务管理;Struts处理MVC...
在本示例中,"spring+struts+hibernate写的分页代码" 提供了一个使用这三大流行Java框架实现分页功能的实例。下面将详细解释这三个框架以及它们如何协同工作来实现分页。 1. **Spring框架**:Spring 是一个全面的...
3. 在服务层,利用Spring的依赖注入获取到DAO实例,然后将分页参数传递给Hibernate进行数据库查询。 4. Hibernate根据参数执行分页查询,返回指定范围的数据集合。 5. 服务层处理这些数据,可能包括计算总页数等逻辑...
"使用Struts + Spring + Hibernate完成分页笔记"这个主题涵盖了三个关键的Java EE框架:Struts、Spring和Hibernate,它们分别负责表现层、业务逻辑层和数据访问层的管理。下面将详细介绍这三个框架在分页实现中的...
Struts、Spring、Hibernate(SSH)是Java Web开发中三个非常重要的开源框架,它们分别用于MVC模式的实现、依赖注入和持久化管理。SSH整合是将这三个框架结合在一起,以构建更高效、可维护性更强的企业级应用。本文...
这是一个struts2+hibernate+spring整合的实例,带有分页功能,希望对刚接触struts2的朋友有些帮助。spring2.0,hibernate3.1分页用的是自字义标签,不要少了这个包standard.jar
总的来说,"新闻发布系统JAVA源码(struts+spring+hibernate)"是一个典型的Java Web企业级应用实例,展示了如何利用成熟的开源框架构建复杂的功能,同时保证了代码的可读性和可维护性。对于学习和理解Java Web开发,...
本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...
SSH整合是Java Web开发中常见的技术栈,由Spring、Struts和Hibernate三个开源框架组成,分别负责控制层、表现层和持久层的管理。在这个项目中,SSH版本为Spring 2.5、Struts 2.1和Hibernate 3.3,这是一套相对早期但...
一个Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+JmesaTag实现的强大分页控件例子 里 面有action实现分页和标签实现分页2个例子 action实现的分页 包括了表头排序,导出为PDF,TXT, excel等格式 jar包和数据库...
### j2ee中struts+hibernate+spring+pager-taglib分页实例 #### 概述 在Java企业级应用开发中,Struts、Hibernate、Spring与Pager Taglib经常被联合使用,以构建高性能、高灵活性的应用系统。本文将详细介绍如何...
总结起来,"Struts+Hibernate+Spring+JS 分页程序"实例展示了四个框架如何协同工作,实现Web应用程序的分页功能。Struts处理请求和响应,Hibernate负责数据库操作,Spring作为整体的协调者,JavaScript则为用户提供...
在这个"Struts+Hibernate+Spring的分页"项目中,开发者展示了如何在这样的集成环境下实现分页功能。分页是Web应用中常见的需求,它允许用户逐页浏览大量的数据,提高用户体验并减轻服务器压力。 首先,我们来看看...
Struts、Spring 和 Hibernate 是Java Web开发中三个非常重要的开源框架,它们共同构成了所谓的SSH(Struts + Spring + Hibernate)框架。这篇描述提到的是一个基于SSH框架实现的网上购物车系统,下面将详细介绍这三...
在报表生成过程中,Spring可以管理Struts2中的Action实例,负责数据访问对象(DAO)与业务服务对象(Service)的创建和生命周期,确保事务的一致性。此外,Spring还提供了数据访问抽象层,如JdbcTemplate或...