- 浏览: 182476 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (153)
- 小技巧 (14)
- spring (3)
- struts2 (20)
- hibernate (0)
- java api (2)
- java se (8)
- jsp/servlet (4)
- oracle (0)
- mysql (1)
- ms sqlserver (1)
- js (30)
- jquery (8)
- ajax (2)
- .net (1)
- 软件 (1)
- j2ee (25)
- 网址收藏 (3)
- web综合 (9)
- web打印控件 (3)
- fckeditor (2)
- Groovy (1)
- PHP (5)
- 项目管理 (1)
- SEO (1)
- PostgreSQL (5)
- CKeditor (1)
- Fusion chart (1)
- 网页播放器 (1)
- 曾遇bug (3)
- java日志 (1)
- linux/Unix/CentOs (5)
- VBA (1)
- C# (0)
- 日期控件 (1)
- tomcat (2)
- cookies (1)
- java7 (1)
- JAVA文件操作 (2)
- hibernate;ehcache (2)
- 缓存 (1)
- dd (0)
- DB (1)
- android (2)
最新评论
-
flyingbin:
沙发,不过从头到尾没怎么看懂~
Windows密码本地破解通用方法 -
jfeimao:
credentialsToPrincipalResolvers ...
CAS(单点登陆)---总结一 -
haige18:
这两张图片引用的是网易的地址,现在资源有可能被删除了,所以就显 ...
Struts2中的Value Stack/Stack Context -
fengzhisha0914:
我的图片也不显示了..为何...
Struts2中的Value Stack/Stack Context -
greatwqs:
java.lang.IllegalStateException ...
java.lang.IllegalStateException:Cannot forward after response has been committed
http://www.iteye.com/topic/626524
1、拷贝pager-taglib.jar包
2、在JSP页面中使用taglib指令引入pager-taglib标签库
3、使用pager-taglib标签库进行分页处理
传两个值进去:1、pm.totles总记录数 2、pagesize 每页显示页数 3、<pg:param name="parentId"/>传给后台的变量值对(查询条件)
- <!-- 可以在这里插入分页导航条 -->
- <pg:pager url="org.action" items="${pm.totles}" export="currentPageNumber=pageNumber" maxPageItems="${pagesize}">
- <pg:param name="parentId"/>
- <pg:first>
- <a href="${pageUrl}">首页</a>
- </pg:first>
- <pg:prev>
- <a href="${pageUrl}">前页</a>
- </pg:prev>
- <pg:pages>
- <c:choose>
- <c:when test="${currentPageNumber eq pageNumber}">
- <font color="red">${pageNumber }</font>
- </c:when>
- <c:otherwise>
- <a href="${pageUrl}">${pageNumber }</a>
- </c:otherwise>
- </c:choose>
- </pg:pages>
- <pg:next>
- <a href="${pageUrl}">后页</a>
- </pg:next>
- <pg:last>
- <a href="${pageUrl}">尾页</a>
- </pg:last>
- /pg:pager>
<!-- 可以在这里插入分页导航条 --> <pg:pager url="org.action" items="${pm.totles}" export="currentPageNumber=pageNumber" maxPageItems="${pagesize}"> <pg:param name="parentId"/> <pg:first> <a href="${pageUrl}">首页</a> </pg:first> <pg:prev> <a href="${pageUrl}">前页</a> </pg:prev> <pg:pages> <c:choose> <c:when test="${currentPageNumber eq pageNumber}"> <font color="red">${pageNumber }</font> </c:when> <c:otherwise> <a href="${pageUrl}">${pageNumber }</a> </c:otherwise> </c:choose> </pg:pages> <pg:next> <a href="${pageUrl}">后页</a> </pg:next> <pg:last> <a href="${pageUrl}">尾页</a> </pg:last> </pg:pager>
struts2的配置文件 变量拦截器中添加 pager\.offset 这个值是页面标签传给后台进行分页的
- <interceptor-ref name="params">
- <param name="excludeParams">dojo\..*,^struts\..*,pager\.offset</param>
- </interceptor-ref>
<interceptor-ref name="params"> <param name="excludeParams">dojo\..*,^struts\..*,pager\.offset</param> </interceptor-ref>
定义一个获取分页所需变量的拦截器 获取pagesize 每页数 与 开始记录数pager.offset
- public class PagerInterceptor extends AbstractInterceptor{
- @Override
- public String intercept(ActionInvocation invocation) throws Exception {
- SystemContext.setOffset(getOffset());
- SystemContext.setPageSize(getPagesize());
- try{
- return invocation.invoke();
- }finally{
- SystemContext.removeOffset();
- SystemContext.removePagesize();
- }
- }
- private int getOffset(){
- int offset = 0;
- try {
- offset = Integer.parseInt(ServletActionContext.getRequest().getParameter("pager.offset"));
- } catch (Exception ignore) {
- }
- return offset;
- }
- private int getPagesize(){
- int pagesize = 0;
- try {
- pagesize = Integer.parseInt(ServletActionContext.getRequest().getParameter("pagesize"));
- } catch (Exception ignore) {
- }
- if(pagesize==0){
- pagesize=10;
- }
- // System.out.println(pagesize);
- return pagesize;
- }
- }
public class PagerInterceptor extends AbstractInterceptor{ @Override public String intercept(ActionInvocation invocation) throws Exception { SystemContext.setOffset(getOffset()); SystemContext.setPageSize(getPagesize()); try{ return invocation.invoke(); }finally{ SystemContext.removeOffset(); SystemContext.removePagesize(); } } private int getOffset(){ int offset = 0; try { offset = Integer.parseInt(ServletActionContext.getRequest().getParameter("pager.offset")); } catch (Exception ignore) { } return offset; } private int getPagesize(){ int pagesize = 0; try { pagesize = Integer.parseInt(ServletActionContext.getRequest().getParameter("pagesize")); } catch (Exception ignore) { } if(pagesize==0){ pagesize=10; } // System.out.println(pagesize); return pagesize; } }
上面使用了两个ThreadLocal 变量 存储上面的两个值
- public class SystemContext {
- public static ThreadLocal offset = new ThreadLocal();
- public static ThreadLocal pageSize = new ThreadLocal();
- public static int DEFAULT_PAGE_SIZE= 10;
- public static void setOffset(int _offset){
- offset.set(_offset);
- }
- public static int getOffset(){
- Integer _offset = (Integer)offset.get();
- if( _offset ==null){
- _offset=0;
- }
- return _offset;
- }
- public static void removeOffset(){
- offset.remove();
- }
- public static void setPageSize(int _pageSize){
- pageSize.set(_pageSize);
- }
- public static int getPageSize(){
- Integer _pageSize= (Integer)pageSize.get();
- if( _pageSize ==null){
- _pageSize=DEFAULT_PAGE_SIZE;
- }
- return _pageSize;
- }
- public static void removePagesize(){
- pageSize.remove();
- }
- }
public class SystemContext { public static ThreadLocal offset = new ThreadLocal(); public static ThreadLocal pageSize = new ThreadLocal(); public static int DEFAULT_PAGE_SIZE= 10; public static void setOffset(int _offset){ offset.set(_offset); } public static int getOffset(){ Integer _offset = (Integer)offset.get(); if( _offset ==null){ _offset=0; } return _offset; } public static void removeOffset(){ offset.remove(); } public static void setPageSize(int _pageSize){ pageSize.set(_pageSize); } public static int getPageSize(){ Integer _pageSize= (Integer)pageSize.get(); if( _pageSize ==null){ _pageSize=DEFAULT_PAGE_SIZE; } return _pageSize; } public static void removePagesize(){ pageSize.remove(); } }
通过从threadlocal 中获取分页所需的变量,就可以在业务类中获取这两个变量,避免了在每个action中传值的麻烦
- public class BaseManager extends HibernateDaoSupport {
- ...
- PageMode searchOrgs(String hql, Object[] objects){
- ...
- int offset = SystemContext.getOffset();
- int pageSize = SystemContext.getPageSize();
- ...
- List datas = query.setFirstResult(offset).setMaxResults(pageSize).list();
- ...
- }
- }
public class BaseManager extends HibernateDaoSupport { ... PageMode searchOrgs(String hql, Object[] objects){ ... int offset = SystemContext.getOffset(); int pageSize = SystemContext.getPageSize(); ... List datas = query.setFirstResult(offset).setMaxResults(pageSize).list(); ... } }
为了使用方面将上面的分页标签页面提取出公共的部分
- <body>
- <pg:pager items="1001" maxPageItems="33" maxIndexPages="20" export="currentPageNumber=pageNumber">
- <pg:first>
- <a href="${pageUrl }">首页</a>
- </pg:first>
- <pg:prev>
- <a href="${pageUrl }">前页</a>
- </pg:prev>
- <pg:pages>
- <c:choose>
- <c:when test="${currentPageNumber eq pageNumber}">
- <font color="red">${pageNumber }</font>
- </c:when>
- <c:otherwise>
- <a href="${pageUrl }">${pageNumber }</a>
- </c:otherwise>
- </c:choose>
- </pg:pages>
- <pg:next>
- <a href="${pageUrl }">下页</a>
- </pg:next>
- <pg:last>
- <a href="${pageUrl }">尾页</a>
- </pg:last>
- </pg:pager>
- </body>
<body> <pg:pager items="1001" maxPageItems="33" maxIndexPages="20" export="currentPageNumber=pageNumber"> <pg:first> <a href="${pageUrl }">首页</a> </pg:first> <pg:prev> <a href="${pageUrl }">前页</a> </pg:prev> <pg:pages> <c:choose> <c:when test="${currentPageNumber eq pageNumber}"> <font color="red">${pageNumber }</font> </c:when> <c:otherwise> <a href="${pageUrl }">${pageNumber }</a> </c:otherwise> </c:choose> </pg:pages> <pg:next> <a href="${pageUrl }">下页</a> </pg:next> <pg:last> <a href="${pageUrl }">尾页</a> </pg:last> </pg:pager> </body>
需要分页的页面只需如下调用:将url 传进去
- <!-- 可以在这里插入分页导航条 -->
- <s:include value="/common/pager.jsp">
- <s:set var="url" value="'org.action'"/>
- <s:set var="params" value="#{'parentId':null}"/>
- </s:include>
<!-- 可以在这里插入分页导航条 --> <s:include value="/common/pager.jsp"> <s:set var="url" value="'org.action'"/> <s:set var="params" value="#{'parentId':null}"/> </s:include>
pg:pager【这个标签用来设置分页的总体参数】重要参数说明:
url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
items:总记录数,pager标签正是根据这个值来计算分页参数的
maxPageItems:每页显示的行数,默认为10
maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10
pg:first【第一页的标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 首页第一行的索引值
lastItem - 首页最后一行的索引值
pg:pre【上一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 前页第一行的索引值
lastItem - 前页最后一行的索引值
pg:next【下一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 下页第一行的索引值
lastItem - 下页最后一行的索引值
pg:last重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 尾页第一行的索引值
lastItem - 尾页最后一行的索引值
pg:pages【这个标签用来循环输出页码信息】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - pageNumber这个页码指定的那一页的第一行的索引值
lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
jsp 分页:
http://xuxiaolei.iteye.com/blog/165058
发表评论
-
Java 连接access 使用access文件 不用配置
2012-05-23 09:43 863String url = "jdbc:od ... -
在Java 7里如何对文件进行操作
2012-04-25 16:53 712下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会 ... -
Java将中文转换成拼音,用于字母的模糊查询
2012-04-23 15:05 1804/** * 将汉字转换为拼音 * ... -
JSON+Jquery实现页面动态加载
2011-12-09 18:10 735看附件 -
轻松实现Apache,Tomcat集群和负载均衡
2011-04-29 09:42 695作者:罗代均 ldj_work#126.com,转载请保 ... -
Java或web中解决所有路径问题
2011-04-28 21:48 663Java中使用的路径, ... -
基于jquery的上传插件Uploadify
2010-11-26 17:24 946无论是做Web产品还是Web项目,文件上传是经常要用到的功 ... -
JSP中的两种包含页面的方法
2010-11-09 11:47 723写道 第一种:include指令:当JSP转换成Servle ... -
jFreeChart 在jsp页上实现简单的折线图、柱状图
2010-10-31 13:57 1955可参考资料与网址 官方网站 http://www ... -
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎
2010-10-31 11:22 863SSH + Lucene + 分页 + 排序 + 高亮 ... -
【原创】CAS调研总结
2010-10-31 11:13 914本篇文章是对JA-SIG CAS(v3.3)的初步调研总结。 ... -
CAS客户端证书认证登录
2010-10-31 11:09 1841前端时间需要实现公司内网证书自动登录CAS. 由于对CAS的 ... -
CAS(单点登陆)---总结一
2010-10-31 11:05 1283单点登录(sso)是指基 ... -
单点登录CAS Server 介绍
2010-10-31 11:04 912下面的讲解基于CAS Server ... -
CAS(单点登陆)---总结二
2010-10-31 11:01 779返回更多用户信息继... 配置ssoAuth/WEB-INF ... -
java 防sql注入
2010-10-27 21:29 793package com.cssweb.webcall.util ... -
防止未登录进行操作 解决登录页面内嵌问题
2010-10-27 21:28 1370防止未登录进行操作 解决登录页面内嵌问题 1.进入登录的 ... -
fckeditor的使用
2010-10-27 21:17 722先根据上一篇博文下载FckEditor的工具 1.简单的例子 ... -
网页在线编辑器 fckeditor
2010-10-27 21:16 991几种常见的网页在线编 ... -
解决地址栏传输中文问题
2010-10-27 21:10 773一、传统的方法,修改tomcat/conf/server.xm ...
相关推荐
使用pager-taglib分页,含有多种分页样式,jar包都有,只要导入就可以运行,内附有说明,java 语言的
pager-taglib使用指南 .txt 很详细,里面还有例子。
pager-taglib-2.0及使用方法,一个很好用的页面分页工具.
pager-taglib 是个很好的jsp分页标签,使用它结合jstl可以实现灵活的分页导航功能。在实际的开发中post方式的提交比较常见,本人做了一个比较通用的基于post方式的一个应用。主要实现一下功能: 1.添加输入跳转、每...
这是pager-taglib的官方源码,但在采用官方的pager-taglib分页传输中文参数会出现乱码,所以我采用maven新建一个pager-...以便可以根据需求重构pager-taglib引用,如果熟悉maven可以直接使用maven构建和安装到本地仓库
pager-taglib-2.0,pager-taglib-2.0,pager-taglib-2.0,java分页标签。
利用pager-taglib进行查询分页时需要添加该jar包:pager-taglib.jar
用pager-taglib进行分页时,如果出现中文参数,由于pager-taglib默认是用ISO8859-1编码后进行参数传递,故会出现乱码现象。本人下载源码后,将编码的语句注释掉,即不进行编码,解决了中文乱码问题。改写后的代码已...
pager-taglib.jar包下载.很方便的分页框架。这是jar包,希望能帮到大家
用于在jsp中进行分页的 pager-taglib包
支持中文传输的pager-taglib.jar
已解决中文乱码问题的 pager-taglib-2.0.jar包。
在Struts中应用标签的数据库分页示例(dbpage.jsp),打开方法: http://localhost:8080/pagertaglib/dbPageAction.do?pageSize=5&pager.offset=0&pageNo=1<br>在Struts中应用标签但一次取数据在页面自动分页的示例...
maven仓库下载的pager-taglib2.0分页时 存在中文参数乱码问题。 须修改 源文件,附件为更改源码后的 jar包
本资源融合了struts+spring+hibernate的集成,并充分运用jsp开源分页标签(pager-taglib)进行了分页。支持多条件的分页查询。由于上传大小限制,本人被迫将所用到的jar包目录删除,所需的几个必备jar包我已留在本...
Pager-taglib,支持多种风格的分页显示。实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格...