- 浏览: 53929 次
- 性别:
- 来自: 北京
最新评论
-
alvin198761:
楼主如何调价图标呢
自定义带关闭按钮的TabbedPane -
carlkkx:
Disney2002 写道carlkkx 写道生成PDF,然后 ...
关于JTable的打印讨论 -
Disney2002:
carlkkx 写道生成PDF,然后打开PDF阅读器,然后用户 ...
关于JTable的打印讨论 -
carlkkx:
生成PDF,然后打开PDF阅读器,然后用户爱怎么打印怎么打印。 ...
关于JTable的打印讨论 -
Disney2002:
Disney2002 写道现在遇到一个问题,如果报表模板列不定 ...
JasperReport 个人使用的一些经验
1. 核心类:
Pager类:
2. 需要使用分页的Action类继承该类
3.页面添加如下JSP内容即可
q是列表的类型,p 是返回要获取的页数
import java.util.ArrayList; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.nazca.consult.consultee.web.util.Pager; import com.opensymphony.xwork2.ActionSupport; /** * 分页使用到的Action,如果其他有分页需要的action继承此Action即可使用分页功能 * * @author XiaoQuan */ public class AbstractListActioin extends ActionSupport { private static final long serialVersionUID = -4680224737445304053L; private static Log log = LogFactory.getLog(AbstractListActioin.class); public Pager makePager(String pageNumber, int total, int pageSize, int ListStep) { Pager pager = new Pager(); // 设置总数 pager.setTotal(total); // 设置每页显示多少数据 pager.setPageSize(pageSize); int pageNum = 1; if (pageNumber != null) { pageNum = Integer.parseInt(pageNumber); } // 设置当前页 pager.setCurrentPage(pageNum); // 最多显示分页页数 pager.setListStep(ListStep); // 求总页数,ceil(num)取整不小于num pager.setPagesCount((int) Math.ceil((double) pager.getTotal() / pager.getPageSize())); if (pager.getPagesCount() < pageNum) { pager.setCurrentPage(pager.getPagesCount());// 如果分页变量大总页数,则将分页变量设计为总页数 } if (pageNum < 1) { pager.setCurrentPage(1); } // 从第几页开始显示分页信息 pager.setListBegin(pager.getCurrentPage() - (int) Math.ceil((double) pager.getListStep() / 2)); if (pager.getListBegin() < 1) { pager.setListBegin(1); } // 分页信息显示到第几页 pager.setListEnd(pager.getCurrentPage() + pager.getListStep() / 2); if (pager.getListEnd() > pager.getPagesCount()) { pager.setListEnd(pager.getPagesCount()); } List<String> list = new ArrayList<String>(); for (int i = pager.getListBegin(); i < pager.getListEnd(); i++) { list.add(i + ""); } pager.setPageList(list); return pager; } }
Pager类:
import java.util.List; /** * * @author XiaoQuan */ @SuppressWarnings("unchecked") public class Pager { private int beginPage; private int endPage; private int currentPage; private int pageSize; private int total; private int listStep; private int listBegin; private int listEnd; private int pagesCount; private List pageList; public int getBeginPage() { return beginPage; } public void setBeginPage(int beginPage) { this.beginPage = beginPage; } public int getEndPage() { return endPage; } public void setEndPage(int endPage) { this.endPage = endPage; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public int getListStep() { return listStep; } public void setListStep(int listStep) { this.listStep = listStep; } public int getListBegin() { return listBegin; } public void setListBegin(int listBegin) { this.listBegin = listBegin; } public int getListEnd() { return listEnd; } public void setListEnd(int listEnd) { this.listEnd = listEnd; } public int getPagesCount() { return pagesCount; } public void setPagesCount(int pagesCount) { this.pagesCount = pagesCount; } public List getPageList() { return pageList; } public void setPageList(List pageList) { this.pageList = pageList; } }
2. 需要使用分页的Action类继承该类
public class GetMyQListAction extends AbstractListActioin { 中间内容略.... //获得page对象,保存到session中 Pager pageP = makePager(getPage(), total, Constants.MY_QUESTION_PAGE_N, Constants.LIST_STEP); ctx.put("pager", pageP); }
3.页面添加如下JSP内容即可
<div id="pageNavigator"> <span> <s:if test="#request.pager.currentPage > 1"> <s:url id="prePage" action="consult" includeParams="none"> <s:param name="pages" value="#request.pager.currentPage-1" /> </s:url> <s:a href="#" onclick="javascript:GetFavoriteQList(0,%{#request.pager.currentPage-1})">上一页</s:a> </s:if> <s:else> <span>上一页</span> </s:else> </span> <span> <s:iterator value="#request.pager.pageList" id="pageList" status="pageNum"> <s:if test="#request.pager.currentPage == #pageList"> <b>[<s:property value="pageList" />]</b> </s:if> <s:else> <s:a href="#" onclick="javascript:GetFavoriteQList(0,%{pageList})">[<s:property value="pageList" />]</s:a> </s:else> </s:iterator> </span> <span> <s:if test="#request.pager.currentPage != #request.pager.pagesCount"> <s:url id="nextPage" action="some" includeParams="none"> <s:param name="pages" value="#request.pager.currentPage+1" /> </s:url> <s:a href="#" onclick="javascript:GetFavoriteQList(0,%{#request.pager.currentPage+1})">下一页</s:a> </s:if> <s:else> <span>下一页</span> </s:else> </span> </div>
评论
12 楼
baoq
2009-02-24
真麻烦 还不如
http://www.iteye.com/topic/317875
http://www.iteye.com/topic/317875
11 楼
bruce_andy
2008-07-08
看看rubbin先生的,业务类写的很好了
10 楼
kjj
2008-07-08
嗯 ,楼上的见解和我一样,我正在做这个标签,原则上 page类只是一个控制类,指示index和size,action里不宜放太多的业务逻辑啊
9 楼
ray_linn
2008-07-04
private List pageList; --- 这个是虾米东东?
8 楼
gaoyuntao2005
2008-07-02
好, 写的不错。
7 楼
lanhongbo
2008-07-02
顶 直接打包上传 哈哈
6 楼
zouzou
2008-07-01
提供源码吧
5 楼
lenj
2008-07-01
直接打包上传下吧
4 楼
rennuoting
2008-06-30
能不能提供demo的源代码呢?这样看着很累,自己想实验一下
3 楼
Disney2002
2008-06-29
function GetList(q, p){ var url = null; switch (q) { case 1: url = "A.action?page=" + p; break; default: url = "B.action?page=" + p; } window.scrollTo(0, 0); new Ajax.Request(url, { method: 'post', onSuccess: function(transport){ var favoriteQList = transport.responseText; $("favoriteQ").innerHTML = favoriteQList; }, onCreate: function(){ $("favoriteQ").innerHTML = $("loadingDiv").innerHTML; }, onFailure: function(){ $('loadingText').innerHTML = "出错啦"; $("favoriteQ").innerHTML = $("loadingDiv").innerHTML; } }); }
q是列表的类型,p 是返回要获取的页数
2 楼
wm920
2008-06-24
能给我发这个例子么··谢谢··275243125@163.com
1 楼
javaEye_good
2008-06-24
能不能详细点阿?兄弟。javascript在哪?数据怎么取
发表评论
-
关于JTable的打印讨论
2009-11-10 15:59 2127Java中用Table显示数据是再正常不过的了,有各种各样的T ... -
JFreechart使用技巧
2009-07-27 18:50 10221.自定义纵轴的数值显示位数 Number ... -
再遇 java.util.ConcurrentModificationException
2009-07-22 11:07 2887今天又一次遇到java.util.ConcurrentModi ... -
Java对象的浅拷贝和深拷贝
2009-07-21 22:45 2356首先介绍变量拷贝,变量拷贝时,原始变量和拷贝的新变量引用同一个 ... -
JasperReport 个人使用的一些经验
2009-07-20 14:59 8777本文主要介绍下我在工作中使用JasperReport的一些经验 ... -
Swing Table上的常用技巧
2009-07-14 15:45 36161、自定义列宽 TableColumnModel col ... -
C3P0 导致 Tomcat无法关闭?
2008-11-14 14:58 3578----请版主手下留情啊,这个问题目前搜索不到,要是能搜索到也 ... -
远程访问Tomcat的JMX
2008-10-20 16:02 2406Tomcat的JMX支持默认应该是关闭的,首先我们得打开Tom ... -
用Java动态代理实现AOP
2008-08-23 22:42 1081AOP主要应用于日志记录 ... -
通过Java生成Excel文件
2008-08-14 16:58 7347package demo; import java. ... -
共享下JFreeChart的Developer.Guide v1.0.9
2008-06-29 22:15 1400JFreeChart 的Developer.Guide 不好找 ... -
No configuration found for the specified action
2008-06-20 18:53 2778用惯了Struts1.1的朋友,在用struts2时可能会出现 ... -
关于JCS
2008-06-18 21:22 1179关于JCS «‹›» JCS是Jaka ... -
自定义带关闭按钮的TabbedPane
2008-06-13 14:32 3468package test; import javax ... -
转载:session介绍
2008-06-01 00:07 1345摘要: 虽然session机制在web应用程序中被采用已经很长 ...
相关推荐
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...
在本"Struts2+jdbc+mysql分页Demo"中,我们将探讨如何使用Struts2框架配合JDBC和MySQL数据库实现动态网页的分页功能。 首先,我们需要理解分页的基本概念。分页是将大量数据分割成小块,以便用户可以逐步浏览和处理...
本文将详细介绍如何利用Struts2框架结合MySQL数据库实现高效的数据分页功能。 #### 二、Struts2框架简介 Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并对其进行了改进。Struts2采用MVC设计...
总结来说,这个例子展示了如何在Struts2框架下结合Hibernate和Pager-taglib实现一个基本的分页功能。通过理解Action类的职责、Hibernate的数据访问机制以及Pager-taglib的使用方法,我们可以轻松地在实际项目中实现...
本教程将详细讲解如何在Struts2框架中实现分页功能,并结合MySQL数据库进行数据操作。 首先,我们需要理解分页的基本原理。分页是将大量数据分为若干个较小的部分,每个部分称为一页,用户可以逐页浏览,而不需要一...
通过上述步骤,我们已经成功地使用Struts2和Hibernate实现了分页功能。在实际开发中,可能还需要考虑性能优化,如缓存策略、查询优化等。对于初学者来说,理解并实践这个过程是掌握Java Web开发的重要一环。不断学习...
总之,Struts1.2实现分页需要结合Action、DAO、数据模型和JSP视图等多个层面进行协调工作,理解并掌握这一过程有助于提升Web应用的性能和用户体验。在实际开发中,还需要根据项目需求进行适当的调整和优化。
下面将详细讲解如何在Struts2框架下实现分页显示。 首先,我们需要理解分页的基本概念。分页是将大量数据分为多个部分(页)进行展示,用户可以逐页浏览,而不是一次性显示所有记录。这通常涉及到两个关键参数:...
根据提供的信息,我们可以深入探讨如何在Struts2框架中实现分页功能。Struts2是一个开源的、用于创建企业级Java Web应用的框架。它基于MVC(模型-视图-控制器)架构模式,能够帮助开发者高效地组织代码并简化Web开发...
Struts2中的Action类是业务逻辑的入口点,我们可以在这里处理分页请求,然后将结果封装成ModelDriven或ValueStack对象,传递给视图层展示。例如,Action类可能包含以下代码: ```java public class TestAction ...
在具体实现上,Struts2的分页功能可以结合拦截器、Action以及自定义的Taglib来增强其灵活性和可维护性。 - **拦截器**:可以创建自定义拦截器来处理分页相关的请求参数,如页码、每页条数等,便于在多个Action之间...
在JSP页面中,使用Struts2的标签库展示分页数据。例如,可以使用`<s:iterator>`标签遍历学生列表,展示每一页的学生信息。同时,提供上一页、下一页的链接,以便用户浏览不同页的数据。 #### 结论 Struts2的分页...
在Struts2中,数据分页通常通过Action类和视图(JSP或Freemarker)配合完成。Action类负责从数据库中获取指定页码的数据,并将这些数据传递给视图进行展示。分页参数,如当前页数、每页显示条数等,通常通过HTTP请求...
2. **编写Action类**:在Action类中,获取ActionForm中的分页参数,调用DAO查询数据库并封装结果到一个List对象中。 3. **实现DAO**:根据Action传入的参数,构造SQL语句进行分页查询,并返回结果集。 4. **配置...
总的来说,使用Struts和Hibernate实现分页功能,需要结合MVC模式和ORM思想,合理设计数据访问层和业务逻辑层,同时确保前端与后端的有效通信。这个过程涉及到了Java编程、数据库操作、框架理解和页面渲染等多个方面...
本文档将详细介绍如何使用Struts2框架实现数据分页功能。 #### 二、技术栈与环境配置 本示例使用的技术栈包括:JDK1.6、MyEclipse6.0、Tomcat6.0、MySQL5.0以及Struts2.0.11。 1. **开发环境准备** - 首先确保...
- 项目名称可以自定义,例如命名为“Struts2Pagination”。 2. **导入Struts 2 相关JAR包**: - 下载Struts 2 的最新稳定版本,并解压出所有相关的JAR文件。 - 将这些JAR包添加到项目的Build Path中。 - 除了...
本代码示例专注于Struts中如何实现分页功能。 首先,我们需要了解分页的基本概念。分页是将大量数据分为多个较小的、易于管理的部分,每次只加载一部分数据到客户端。这通常通过两个主要部分实现:前端(用户界面)...