`
hbszyandong
  • 浏览: 38313 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts+spring+hibernate+自定义标签的 分页方案

阅读更多
首先编写一个分页用的类

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.BodyTagSupport;
import com.xfaccp.hibernate.dao.CustomersDAO;

public class PagTag extends BodyTagSupport {

	private HttpServletRequest request;

	private int pageSize; // 每页显示的记录数

	private String tableName = null; // 表名

	private int tableSize = 0; // 表中信息的总数量

	private int pageCount = 0; // 共有几页

	private int pages = 1; // 当前页数

	private int startNum; // 起始记录数

	private CustomersDAO cDAO = null;

	private List result = null;

	private HttpSession session = null;



	private String operate;

	
	// 设置分页基本信息
	public int baseSetting() {

		// 计算总页数
		if (tableSize % pageSize != 0) {
			this.pageCount = (tableSize / pageSize) + 1;
		} else {
			this.pageCount = tableSize / pageSize;
		}
		// 设置总共有多少页
		pageContext.setAttribute("pageCount", new Integer(pageCount));

		if (request.getParameter("pages") != null) {
			this.pages = Integer.parseInt(request.getParameter("pages"));
			System.out.println("pages=" + pages);
		}
		if (pages < 1) {
			pages = 1;
		}
		if (pages > pageCount) {
			pages = pageCount;
		}
		// 设置当为第几页
		pageContext.setAttribute("pages", new Integer(pages));

		startNum = pageSize * (pages - 1);
		if (startNum < 0) {
			startNum = 1;
		}
		return startNum;

	}

	public int doStartTag() {
		session = request.getSession();
		cDAO = new CustomersDAO();
		
		if (request.getParameter("operate") != null)
			this.operate = request.getParameter("operate");
		System.out.println("operate"+operate);
		try {
			if (operate == null) {
				System.out.println("accp");
				tableSize = cDAO.getTableSize(); // 设置表中信息的总数量

				int startNm = this.baseSetting();

				System.out.println("startNum" + startNum);
				System.out.println("pagesize" + pageSize);
				result = cDAO.getTableList(startNm, pageSize);
				
			} else {
				tableSize = cDAO.searchTablePartSize();
				int startNum=this.baseSetting();
				result=cDAO.searchTableList(startNum, pageSize);
			}
			session.setAttribute("result", result);

		} catch (Exception sl) {
			sl.printStackTrace();

		}
		return EVAL_BODY_INCLUDE;
	}
	
	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}

	public String getOperate() {
		return operate;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setTableName(String tableName) {
		this.tableName = tableName;
	}


}


然后编写一个tld 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
	"http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
	<tlib-version>1.0</tlib-version>
	<jsp-version>1.1</jsp-version>
	<short-name>show</short-name>
	<uri>http://com.yandong.page</uri>
	<tag>
		<name>show</name>
		<tag-class>com.yandong.common.tag.PagTag</tag-class>
		<body-content>jsp</body-content>
		<attribute>
			<name>request</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>pageSize</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>tableName</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>

</taglib>

经过这样的配置就ok了,业务逻辑我就不写了
分享到:
评论

相关推荐

    新闻发布系统JAVA源码(struts+spring+hibernate)

    【新闻发布系统JAVA源码(struts+spring+hibernate)】是一个典型的Java Web应用程序,它利用了Struts、Spring和Hibernate三大开源框架的集成来构建高效、可维护的新闻发布平台。这个系统的主要目的是提供一个发布、...

    Struts+Spring+Hibernate开发实例 (SSH整合)

    此外,使用Tiles来构建页面布局,自定义标签处理分页和身份验证,使得UI的构建更加灵活。 2. Spring: Spring框架的核心在于依赖注入和AOP(面向切面编程),它简化了对象之间的依赖关系,并提供了与Hibernate的...

    Struts2 + Spring2 + Hibernate3经典分页(包含java及jsp源码)

    ### Struts2 + Spring2 + Hibernate3 经典分页技术解析 #### 一、概述 在企业级应用开发中,分页显示是常见的需求之一。对于数据量较大的查询结果,采用分页的方式不仅能减轻服务器的压力,提高用户体验,还能更好...

    struts+spring+hibernate 分页

    Struts 主要负责MVC(Model-View-Controller)架构中的控制层,Spring 提供了全面的框架支持,包括依赖注入、事务管理、AOP(面向切面编程)等,而Hibernate 则是持久层的解决方案,专注于对象关系映射(ORM),简化...

    Struts+Spring+Hibernate通用分页解决方案

    "Struts+Spring+Hibernate通用分页解决方案"是针对基于这三大框架(Struts、Spring、Hibernate)的Java Web应用所设计的一种高效且可复用的分页策略。以下是关于这个主题的详细解释: 1. **Struts框架**:Struts是...

    jsp+struts+spring+hibernate新闻系统

    【标题】"jsp+struts+spring+hibernate新闻系统"是一个基于Java技术栈的Web应用程序,它利用了SSH(Struts、Spring、Hibernate)框架的集成来构建一个功能完善的新闻发布与管理系统。SSH框架是Java领域中常用的MVC...

    struts2 + spring 3 + hibernate3.3整合实现图书馆管理管理

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合应用广泛用于构建复杂的Web应用程序,如本例中的图书馆管理系统。这个系统实现了用户登录和注册功能,并且提供了对书籍表的操作,包括增、删、改...

    struts2+spring2+hibernate3注册查询搜索分页实例

    总的来说,这个"Struts2+Spring2+Hibernate3注册查询搜索分页实例"是一个很好的学习资源,涵盖了Java Web开发中的基础和核心部分。通过学习这个实例,开发者不仅可以掌握三大框架的基本用法,还能了解到如何将它们...

    struts+spring+hibernate通用分页方法

    struts+spring+hibernate通用分页方法.rar 博文链接:https://igogogo9.iteye.com/blog/97692

    网上购物车struts+spring+hibernate实现

    - **标签库**:Struts 提供了一系列自定义标签,如`&lt;s:form&gt;`、`&lt;s:textfield&gt;`等,简化了视图层的开发。 2. **Spring**: - **依赖注入(DI)**:Spring 提供了强大的依赖注入功能,使得组件间的依赖关系可以...

    jquerygrid+spring+struts+hibernate

    在IT行业中,jQuery Grid(通常简称为jGrid)是一个强大的JavaScript数据网格插件,它能够与后端的数据存储系统如Spring、Struts和Hibernate等Java框架无缝集成,以实现高效的数据展示和管理。这个名为"jquerygrid+...

    struts+hibernate+spring集成实现分页

    Struts、Hibernate和Spring是Java开发中的三大框架,它们各自负责不同的职责,组合起来可以构建出高效、松耦合的企业级应用。SSH(Struts、Spring、Hibernate)集成是Java Web开发中的常见模式,用于创建复杂的业务...

    android访问struts2+spring+hibernate应用

    此压缩包含有两个工程,一个工程是struts2+spring2.5+hibernate3.3整合的服务器端技术(全注解)(云端),另一个工程是android的手机应用,包含对ssh整合的云端数据的访问,能够在android输入信息,将数据传递给...

    使用Struts + Spring + Hibernate完成分页笔记

    "使用Struts + Spring + Hibernate完成分页笔记"这个主题涵盖了三个关键的Java EE框架:Struts、Spring和Hibernate,它们分别负责表现层、业务逻辑层和数据访问层的管理。下面将详细介绍这三个框架在分页实现中的...

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2是经典的Java Web开发框架组合,常被称为SSH。这三个框架协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得企业级应用的开发更加高效和模块化。 Struts...

    Struts2+Spring3+Hibernate3 用户管理系统实例源码

    本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...

    struts2+spring+hibernate分页,事务,自定义切面

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(模型-视图-控制器)架构的实现,Spring提供了强大的依赖注入和面向切面编程功能,而Hibernate则是一个优秀的...

    Struts+Spring+Hibernate(CRUD操作案例)-分页查询

    前段时间时间当我在学习SSH框架技术的时候,在网上很难找到关于SSH的完整例子,比如最基本的CRUD操作和用的比较多的查询分页技术。为了让SSH初学者更清楚全面的学习,不再像我初学时候迷失方向。特花了2天时间做一个...

    struts+spring+hibernate+dwr+分页例子

    在这个“struts+spring+hibernate+dwr+分页例子”中,我们将深入探讨这四个框架的集成以及分页功能的实现。 1. **Struts**: Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。它主要负责处理...

Global site tag (gtag.js) - Google Analytics