1、把pager-taglib.jar拷贝到项目的lib目录下
2、在要使用的jsp页面中引入标签库
<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
3、在html中静态使用演示:
<body>
<pg:pager items="1001" export="currentPageNo = pageNumber">
<pg:first>
<a href="${pageUrl }" />首页</a>
</pg:first>
<pg:prev>
<a href="${pageUrl }" />上页</a>
</pg:prev>
<pg:pages>
<c:choose>
<c:when test="${currentPageNo == 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>
4、在和struts结合动态的使用
最终效果:
每页显示的条数可以在下拉框中动态的指定
<!--url:是指要将这些分页数据提交到的action,如果不写这个url他会默认把当前页面作为转向地址,这是错误的 items:从dao层取回来的数据 export:进行了一个变量的赋值 maxPageItems:每页最多显示的条数,默认10 ,注意这个参数的取值要和服务器端的值保持一致,否则会出现一些莫名奇妙的错误-->
<pg:pager url="org.action" items="${pm.total}" export="currentPageNo = pageNumber" maxPageItems="${pagesize}">
<!-- 当进入到机构的下一级子机构的时候分页要查询的是当前机构下所有的数据然后分页,所以要带着pid,他会自动把这个参数的值加入到url串中 -->
<pg:param name="pid"/>
<pg:param name="pagesize"/>
<pg:first>
<a href="${pageUrl }" />首页</a>
</pg:first>
<pg:prev>
<a href="${pageUrl }" />上页</a>
</pg:prev>
<pg:pages>
<c:choose>
<c:when test="${currentPageNo 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>
每页显示:
<select id="pagesize" onchange="javascript:changeItem(this)">
<option value="3">3</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
</select>
条
</pg:pager>
在下拉框中用一个onchange时间调用一个JavaScript函数吧用户当前选择的数据组装成一个url地址然后向后台发送一个请求,查询数据:
<script type="text/javascript">
function changeItem(pagesize) {
var i = document.getElementById("pagesize").value;
window.location.href = "org.action?pid=" + '<s:property value="pid" />' + "&pagesize=" + i;
}
</script>
接下来我们定义一个拦截器把用户提交的pagesize这个属性设置到一个TheradLocal中然后再dao层取数据的时候从ThreadLocal中取出相应的数据进行分页就可以了(别忘了把我们自己定义的拦截器加入到struts.xml配置文件中):
public class PageModelInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invoke) throws Exception {
int offset = 0;
try {
offset = Integer.parseInt(ServletActionContext.getRequest()
.getParameter("pager.offset"));
} catch (NumberFormatException e) {
}
//默认为5
int pageSize = 5;
try {
pageSize = Integer.parseInt(ServletActionContext.getRequest().getParameter("pagesize"));
} catch (Exception e) {
}
//在这个地方要把pagesize设置到request中,因为这个数据是设定<pg:pager>标签中maxPageItems值的依据,一定要保持一致。
ServletActionContext.getRequest().setAttribute("pagesize", pageSize);
PageModel pm = MyThreadLocal.getValue();
pm.setOffset(offset<0 ? 0 : offset);
pm.setPageSize(pageSize<0 ? Integer.MAX_VALUE : pageSize);
MyThreadLocal.setValue(pm);
try {
return invoke.invoke();
}finally {
//注意等到整个拦截器执行完成即一个ThreadLocal完成它的工作后要清除里面的内容
MyThreadLocal.remove();
}
}
}
//用javascript保证下拉列表中显示的值与当前用户的选择一致:这一句要放到后面等到下拉框加载完成之后才能起作用
<script type="text/javascript">
var pagesize = document.getElementById("pagesize").options;
for(var i=0; i<pagesize.length; i++) {
if(pagesize[i].value == ${pagesize})
pagesize[i].selected = true;
}
</script>
- 大小: 25.8 KB
分享到:
相关推荐
使用pager-taglib分页,含有多种分页样式,jar包都有,只要导入就可以运行,内附有说明,java 语言的
使用pager-taglib结合ssh框架轻松从数据库开始实现前台的分页显示,非常实用的东西!!会给你很大的帮助和惊喜的
这是关于paper-taglib分页框架的小小项目,导入myeclipse中部署到服务器可直接运行,包含了两种分页风格:普通样式和谷歌样式,可以在servlet中通过注释切换。
pager-taglib分页组建 pager-taglib分页组建 pager-taglib分页组建 pager-taglib分页组建
pager-taglib 是个很好的jsp分页标签,使用它结合jstl可以实现灵活的分页导航功能。在实际的开发中post方式的提交比较常见,本人做了一个比较通用的基于post方式的一个应用。主要实现一下功能: 1.添加输入跳转、每...
jsp 分页标签。 用于列表自动分页功能
jsp pager-taglib分页资料jsp pager taglib 分页 ppt,很好的分页模版
pagerTaglib2.0 struts 分页Demo 对于刚研究分页的来说,可以参考下!
本人自己练习用的、备用、以防下次用的时候忘记如何使用
用于在jsp中进行分页的 pager-taglib包
该资源系本人工作之余的一个小小案例,希望对大家有所帮助
displaytag,pager-taglib 分页包 和源文件
pager-taglib的安装与使用pager-taglib的安装与使用pager-taglib的安装与使用
pager-taglib分页要点,第三方分页工具 的要点!
很详细的Pager-taglib标签库分页的使用。
通过网上搜集资料,实现了一个struts2+hibernate+pager-taglib的分页小例子,大家在运行例子前,请一定要看包里面的readme.txt文件。里面有环境的搭建。
Pager-taglib实际上是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合支持多种风格的分页显示。会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括...
pager-taglib 是个很好的jsp分页标签,使用它结合jstl可以实现灵活的分页导航功能。在实际的开发中post方式的提交比较常见,本人做了一个比较通用的基于post方式的一个应用。主要实现一下功能: 1.添加输入跳转、每...
pager-taglib-2.0 JSP分页组件 包括jar包和安装使用说明
jsp使用自定义标签taglib分页系列——完整例子