- 浏览: 53050 次
- 性别:
- 来自: 北京
最新评论
-
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 2071Java中用Table显示数据是再正常不过的了,有各种各样的T ... -
JFreechart使用技巧
2009-07-27 18:50 9471.自定义纵轴的数值显示位数 Number ... -
再遇 java.util.ConcurrentModificationException
2009-07-22 11:07 2852今天又一次遇到java.util.ConcurrentModi ... -
Java对象的浅拷贝和深拷贝
2009-07-21 22:45 2321首先介绍变量拷贝,变量拷贝时,原始变量和拷贝的新变量引用同一个 ... -
JasperReport 个人使用的一些经验
2009-07-20 14:59 8704本文主要介绍下我在工作中使用JasperReport的一些经验 ... -
Swing Table上的常用技巧
2009-07-14 15:45 35811、自定义列宽 TableColumnModel col ... -
C3P0 导致 Tomcat无法关闭?
2008-11-14 14:58 3547----请版主手下留情啊,这个问题目前搜索不到,要是能搜索到也 ... -
远程访问Tomcat的JMX
2008-10-20 16:02 2327Tomcat的JMX支持默认应该是关闭的,首先我们得打开Tom ... -
用Java动态代理实现AOP
2008-08-23 22:42 1059AOP主要应用于日志记录 ... -
通过Java生成Excel文件
2008-08-14 16:58 7321package demo; import java. ... -
共享下JFreeChart的Developer.Guide v1.0.9
2008-06-29 22:15 1310JFreeChart 的Developer.Guide 不好找 ... -
No configuration found for the specified action
2008-06-20 18:53 2737用惯了Struts1.1的朋友,在用struts2时可能会出现 ... -
关于JCS
2008-06-18 21:22 1149关于JCS «‹›» JCS是Jaka ... -
自定义带关闭按钮的TabbedPane
2008-06-13 14:32 3426package test; import javax ... -
转载:session介绍
2008-06-01 00:07 1318摘要: 虽然session机制在web应用程序中被采用已经很长 ...
相关推荐
下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...
下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...
封装通用的Spring3+Struts2+MyBatis3的CRUD+条件分页查询,Spring+Quartz调度,FunctionCharts图像化工具 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
5.Java中的分页、效率考虑。 6.简单介绍您所了解的structs。 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...