`

struts下的分页实现

阅读更多
ActionForm 基类 BaseForm的代码如下:
/**
 * <pre>
 * Title: 		BaseForm.java
 * Project: 	taxs_Admin
 * Type:		com.tenpay.taxs.form.BaseForm
 * Author:		ben.liu
 * Create:	 	Apr 8, 2008 3:03:01 PM
 * Copyright: 	Copyright (c) 2008
 * Company:		
 * <pre>
 */
package com.tenpay.taxs.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**
 * <pre>
 * </pre>
 * @author ben.liu
 * @version 1.0, Apr 8, 2008
 */
public class BaseForm extends ActionForm
{
	/*
	 * 当前页数
	 */
	private int currentPage ;

	/*
	 * 最大页数
	 */
	private int maxPage;
	/*
	 * 最大记录数
	 */
	private int sumCount;
	/*
	 * 跳到第几页
	 */
	private int searchPage;
	/*
	 * 页面走向
	 */
	private String orientation;

	public String toString()
	{
		StringBuffer sb = new StringBuffer("");
		sb.append("{maxPage=").append(maxPage).append(",");
		sb.append("sumCount=").append(sumCount).append(",");
		sb.append("searchPage=").append(searchPage).append(",");
		sb.append("currentPage=").append(currentPage).append(",");
		sb.append("orientation=").append(orientation).append("}");
		return sb.toString();
	}

	public int getCurrentPage()
	{
		return this.currentPage;
	}

	public void setCurrentPage(int currentPage)
	{
		this.currentPage = currentPage;
	}

	public int getMaxPage()
	{
		return this.maxPage;
	}

	public void setMaxPage(int maxPage)
	{
		this.maxPage = maxPage;
	}

	public int getSumCount()
	{
		return this.sumCount;
	}

	public void setSumCount(int sumCount)
	{
		this.sumCount = sumCount;
	}

	public int getSearchPage()
	{
		return this.searchPage;
	}

	public void setSearchPage(int searchPage)
	{
		this.searchPage = searchPage;
	}

	public String getOrientation()
	{
		return this.orientation;
	}

	public void setOrientation(String orientation)
	{
		this.orientation = orientation;
	}

	@Override
	public void reset(ActionMapping mapping, HttpServletRequest request)
	{
		this.currentPage=1;
		this.maxPage =0;
		this.orientation ="";
		this.sumCount=0;
		this.searchPage=0;
	}
}

所有的要分页的Form都要求继承它。
Action 基类 BaseAction的代码如下:
/**
 * <pre>
 * Title: 		BaseAction.java
 * Project: 	AgentPortal
 * Type:		com.tenpay.taxs.action.base.BaseAction
 * Author:		liubenling
 * Create:	 	2007-6-6 下午05:59:07
 * Copyright: 	Copyright (c) 2007
 * Company:
 * <pre>
 */
package com.tenpay.taxs.action.base;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.tenpay.taxs.form.BaseForm;
import com.tenpay.taxs.util.help.LogFactory;

/**
 * <pre>
 * 基础Action类,所有Action类都应该继承自该类
 * </pre>
 * 
 * @author liubenling
 * @version 1.0, 2007-6-6
 */
public abstract class BaseAction extends Action
{
	private static final Logger logger = LogFactory.getLogger(BaseAction.class);

	private int pagesize;

	public int getPagesize()
	{
		return this.pagesize;
	}

	public void setPagesize(int pagesize)
	{
		this.pagesize = pagesize;
	}

	public abstract ActionForward doIt(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2,
			HttpServletResponse arg3) throws Exception;

	/*
	 * (非 Javadoc)
	 * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping,
	 *      org.apache.struts.action.ActionForm,
	 *      javax.servlet.http.HttpServletRequest,
	 *      javax.servlet.http.HttpServletResponse)
	 */
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception
	{
		return doIt(mapping, form, request, response);
	}

	public String query(ActionForm form)
	{
		BaseForm realForm = (BaseForm) form;
		String orientation = realForm.getOrientation();
		logger.debug("上页在" + realForm.getCurrentPage() + "页");
		logger.debug("realForm.getSearchPage()=" + realForm.getSearchPage());
		logger.debug("maxPage=" + realForm.getMaxPage());
		int limit = 0;
		if (realForm.getSearchPage() > 0 && realForm.getSearchPage() <= realForm.getMaxPage())
		{
			realForm.setCurrentPage(realForm.getSearchPage());
		}
		if (realForm.getCurrentPage() <= 0)
		{
			realForm.setCurrentPage(1);
		}
		StringBuffer sqlSb = new StringBuffer(" limit "); // 返回的部分sql语句
		// 有时候从开始查询的时候并没有带orientation等参数
		// 这是第一页的情况
		if ("first".equals(orientation))
		{
			orientation = "first";
			realForm.setOrientation("first");
			realForm.setCurrentPage(1);
		} // 下面是下一页
		else if ("next".equals(orientation))
		{
			if (realForm.getCurrentPage() >= realForm.getMaxPage())
			{
				realForm.setCurrentPage(realForm.getMaxPage());
				realForm.setOrientation("end");
			}
			else
			{
				realForm.setCurrentPage(realForm.getCurrentPage() + 1);
				realForm.setOrientation("next");
			}
		} // 下面是上一页
		else if ("last".equals(orientation))
		{
			if (realForm.getCurrentPage() - 1 <= 1)
			{
				realForm.setCurrentPage(1);
				realForm.setOrientation("first");
			}
			else
			{
				realForm.setCurrentPage(realForm.getCurrentPage() - 1);
				realForm.setOrientation("last");
			}
		}
		else if ("end".equals(orientation))
		{
			realForm.setCurrentPage(realForm.getMaxPage());
			realForm.setOrientation("end");
		}
		sqlSb.append((realForm.getCurrentPage() - 1) * this.pagesize).append(",").append(this.pagesize);
		logger.debug("分页sql:" + sqlSb.toString());
		return sqlSb.toString();
	}

}

这样就可以实现分页了。
请看我的页面效果如下:

  • 大小: 1.1 MB
2
2
分享到:
评论
2 楼 senlinxue1982 2008-07-24  
顶一个,希望自己也能入门,搞个分页什么的
1 楼 422232121 2008-04-12  
不错哈,顶了啊

相关推荐

    Struts2 分页实现

    总的来说,Struts2的分页实现需要结合数据库操作、Action控制和前端展示三方面的工作。理解这个过程对于Java Web开发者来说是至关重要的,它可以帮助你更好地处理大数据量的展示,提供更加友好的用户界面。通过实践...

    使用struts实现分页

    本资源通过Struts框架实现了分页功能,主要涉及到以下几个关键知识点: 1. **MVC设计模式**:MVC模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑,视图...

    Struts2实现分页查询

    用Struts2+mysql实现的简单信息录入,分页查询

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

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...

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

    Struts2.0 是一个流行的Java Web开发框架,它提供了一种组织和控制MVC(Model-...同时,随着技术的发展,现代的Web应用可能更倾向于使用ORM框架(如Hibernate)和前端分页库(如jQuery DataTables)来简化分页实现。

    struts2增删改查,struts2分页查询

    在探讨Struts2框架下的增删改查以及分页查询功能时,我们首先需要理解Struts2框架本身。Struts2是Apache软件基金会的一个开源Web应用框架,它继承了Struts1的一些特性,并在此基础上进行了大量的改进和扩展,提供了...

    Struts2自定义分页标签

    通过自定义分页标签,Struts2开发者能够轻松实现定制化分页,并保持代码的整洁和可维护性。这种方式避免了在多个JSP页面中重复编写分页逻辑,提高了代码复用性,同时降低了出错的可能性。 总之,本资源提供的Struts...

    Struts+Hibernate实现分页

    这样的分页实现保证了数据的高效加载和用户的流畅体验,同时充分利用了Struts的控制层和Hibernate的数据访问层能力,降低了开发复杂度。在实际项目中,还可以考虑优化如缓存、懒加载等策略来进一步提高性能。

    struts2分页实现

    Struts2分页实现是Web开发中常见的需求,它能够帮助用户更有效地浏览大量数据,提高用户体验。在本文中,我们将深入探讨如何在Struts2框架下实现分页功能。 首先,我们需要理解分页的基本原理。分页的核心是将大...

    struts1.2实现分页

    二、Struts1.2分页实现步骤 1. **配置Action**:首先,我们需要创建一个处理分页请求的Action类,该类需要接收并处理用户请求的分页参数,如当前页数和每页大小。通常,这些参数会通过HTTP请求传递。 2. **数据...

    用struts实现的分页

    下面我们将深入探讨如何在Struts框架下实现分页功能。 首先,我们需要理解分页的基本概念。分页是指将一个大数据集合分割成多个小部分,每次只显示一部分,用户可以通过翻页来查看其他部分。在Web应用中,这通常...

    struts2实现分页

    在分页实现中,我们主要利用 `&lt;s:bean&gt;` 创建 `org.apache.struts2.util.Counter` 类型的 bean 来控制循环范围。 #### 三、`&lt;s:bean&gt;` 标签的基本用法 `&lt;s:bean&gt;` 标签的基本语法如下: ```xml ... ``` - *...

    使用 struts2实现分页

    本篇文章将详细讲解如何利用Struts2和JSP实现前端的分页功能。 分页是Web应用中常见的需求,尤其在处理大量数据时,能够帮助用户更高效地浏览和管理数据。Struts2通过Action类、结果类型配置以及拦截器等机制,可以...

    struts2分页代码的示例

    下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...

    Struts2分页源码技术的应用

    在本文中,我们将深入探讨Struts2分页技术的实现原理、应用方法以及与Hibernate框架的结合。 首先,Struts2作为一款基于MVC模式的Java Web框架,它提供了丰富的拦截器(Interceptor)和动作(Action)机制,使得...

    Struts + Hibernate 分页实现

    在"Struts + Hibernate 分页实现"这个项目中,重点在于如何在Web应用中整合这两个框架,并实现数据的分页显示。分页是大型数据集处理时常见的需求,它能够帮助用户更有效地浏览和管理大量信息,避免一次性加载所有...

    jsp +struts 分页经典

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

    struts2分页效果第二种

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

    在struts+hibernate框架下实现动态分页

    下面将详细介绍如何在Struts和Hibernate框架下实现动态分页。 首先,我们需要了解Struts和Hibernate的基本概念。Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于简化应用程序的开发,...

    struts2.0实现数据分页

    **Struts2.0 实现数据分页的原理** 在Struts2中,数据分页通常通过Action类和视图(JSP或Freemarker)配合完成。Action类负责从数据库中获取指定页码的数据,并将这些数据传递给视图进行展示。分页参数,如当前页数...

Global site tag (gtag.js) - Google Analytics