pager-taglib+struts2分页
//1.导入pager-taglib.jar包;
//2.引入pager-taglib标签:<%@ taglib prefix="pg& quot; uri="http://jsptags.com/tags/navigation/pager" %>
//3.建立PagerModel类:
public class PagerModel {
/**
* 总记
//1.导入pager-taglib.jar包;
//2.引入pager-taglib标签:<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
//3.建立PagerModel类:
public class PagerModel {
/**
* 总记录数
*/
private int total;
/**
* 当前页结果集
*/
private List datas;
public List getDatas() {
return datas;
}
public void setDatas(List datas) {
this.datas = datas;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
//4.pager业务逻辑部分:
public class AbstractManager extends HibernateDaoSupport {
public PagerModel searchHql(String hql){
return searchHql(hql,null,SystemContext.getOffset(),SystemContext.getPageSize());
}
public PagerModel searchHql(String hql,Object datas){
return searchHql(hql,new Object[]{datas},SystemContext.getOffset(),SystemContext.getPageSize());
}
public PagerModel searchHql(String hql,Object[] datas){
return searchHql(hql,datas,SystemContext.getOffset(),SystemContext.getPageSize());
}
public PagerModel searchHql(String hql,int offset,int pageSize){
return searchHql(hql,null,offset,pageSize);
}
public PagerModel searchHql(String hql,Object datas,int offset,int pageSize){
return searchHql(hql,new Object[]{datas},offset,pageSize);
}
public PagerModel searchHql(String hql,Object[] datas,int offset,int pageSize){
String countHql = getQuery(hql);
Query query = getSession().createQuery(countHql);
if(datas !=null && datas.length > 0){
for(int i = 0 ; i<datas.length;i++)
query.setParameter(i, datas[i]);
}
int total = ((Long)query.uniqueResult()).intValue();
Query query1=getSession().createQuery(hql);
if(datas !=null && datas.length > 0){
for(int i = 0 ; i<datas.length;i++)
query1.setParameter(i, datas[i]);
}
List list =query1.setFirstResult(offset) .setMaxResults(pageSize).list();
PagerModel pm = new PagerModel();
pm.setDatas(list);
pm.setTotal(total);
return pm;
}
public String getQuery(String hql){
int index =hql.indexOf("from");
if(index != -1){
return "select count(*)"+hql.substring(index);
}
throw new SystemException("查询语句出错!");
}
}
//5.定义offset、pagesize类:
public class SystemContext {
private static ThreadLocal offset = new ThreadLocal();
private static ThreadLocal pageSize = new ThreadLocal();
public static int getOffset(){
Integer os = (Integer)offset.get();
if(os == null){
return 0;
}
return os;
}
public static void setOffset(int offsetvalue){
offset.set(offsetvalue);
}
public static void removeOffset(){
offset.remove();
}
public static int getPageSize(){
Integer ps = (Integer)pageSize.get();
if(ps == null){
return Integer.MAX_VALUE;
}
return ps;
}
public static void setPageSize(int pageSizevalue){
pageSize.set(pageSizevalue);
}
public static void removePageSize(){
pageSize.remove();
}
}
//6.过滤器中初始化pagesize、offset:
public class PagerFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest =(HttpServletRequest)request;
SystemContext.setOffset(getOffset(httpRequest));
SystemContext.setPageSize(getPageSize(httpRequest));
try{
chain.doFilter(request, response);
}finally{
//清空ThreadLocal中的值
SystemContext.removeOffset();
SystemContext.removePageSize();
}
}
public void init(FilterConfig arg0) throws ServletException {
}
public int getOffset(HttpServletRequest request){
int offset = 0;
try {
offset = Integer.parseInt(request.getParameter("pager.offset"));
} catch (NumberFormatException ignore) {
}
return offset;
}
//设置每页显示多少条记录
public int getPageSize(HttpServletRequest request){
return 3;
}
}
//7.配置过滤器web.xml中:
<filter>
<filter-name>pager-taglib</filter-name>
<filter-class>com.oa.util.filter.PagerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>pager-taglib</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//8.显示效果:
<pg:pager url="org.do" items="${pm.total }" export="currentPageNumber=pageNumber">
<pg:param name="parentId"/>
<pg:first>
<a href="${pageUrl}" mce_href="${pageUrl}">首页</a>
</pg:first>
<pg:prev>
<a href="${pageUrl }" mce_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 }" mce_href="${pageUrl }">${pageNumber }</a>
</c:otherwise>
</c:choose>
</pg:pages>
<pg:next>
<a href="${pageUrl }" mce_href="${pageUrl }">后页</a>
</pg:next>
<pg:last>
<a href="${pageUrl }" mce_href="${pageUrl }">尾页</a>
</pg:last>
</pg:pager>
分享到:
相关推荐
下面我们将详细探讨如何使用pager-taglib分页以及其主要特性。 首先,`pager-taglib`的核心在于其提供的自定义JSP标签,这些标签简化了分页界面的创建。例如,`<pager:pagelist>`用于显示分页链接,`<pager:page>`...
`pager-taglib`是一个专为JSP页面设计的分页标签库,它简化了在JSP中实现分页的过程。下面将详细介绍`pager-taglib`的安装、使用方法以及其核心知识点。 ### 1. `pager-taglib`简介 `pager-taglib`是一个开源的JSP...
**Pager-taglib页面分页示例** 在Java Web开发中,数据量大的时候,分页显示是非常必要的。...这个示例项目展示了如何集成和使用Pager-taglib,对于学习和理解Java Web分页技术具有很好的参考价值。
**标题解析:**"pager-taglib分页jar包"指的是一个专门为JavaServer Pages (JSP) 开发的分页库,它包含了一个名为`pager-taglib`的Java Archive (JAR) 文件。这个JAR包提供了自定义的JSP标签,帮助开发者在网页上...
`pager-taglib` 是一个用于网页分页功能的Java标签库,它简化了在JSP页面中实现分页展示数据的过程。这个框架旨在提高开发效率,提供易用的API和直观的标签语法,使得开发者无需编写大量的HTML和Java代码就能实现...
`pager-taglib.jar`是一个专为Java Web应用设计的分页框架,它提供了便捷的分页标签库,使得开发者能快速实现页面上的分页功能。 **描述:“pager-taglib.jar包下载.很方便的分页框架。这是jar包,希望能帮到大家”...
pager-taglib 是个很好的jsp分页标签,使用它结合jstl可以实现灵活的分页导航功能。在实际的开发中post方式的提交比较常见,本人做了一个比较通用的基于post方式的一个应用。主要实现一下功能: 1.添加输入跳转、每...
"Pager-Taglib 2.0" 是一个专为Java Web开发者设计的高效且易用的分页工具。它以JSP标签库的形式提供服务,极大地简化了在Web应用程序中实现分页功能的过程。这个库的核心是其标签,它们允许开发者在JSP页面上直接...
"pager-taglib-2.0" 是一个强大且灵活的分页标记库,它简化了Web开发中的分页实现,使得开发者能够快速地构建出类似大型网站的分页功能。其易于集成、高度定制化和良好的性能表现,使得它成为Java Web开发中的一个...
`pager-taglib`是一个用于实现分页的自定义标签库,它通过JSP标签来简化分页逻辑的编写。本篇文章将详细解释`pager-taglib.jar`和`tld`文件的用途,以及如何在项目中使用它们。 1. **什么是`pager-taglib.jar`?** ...
`pager-taglib`是Java Web开发中常用的分页标签库,它简化了在JSP页面上实现分页功能的过程。这个标签库通常与Spring MVC、Struts2等框架结合使用,提供了一种声明式的方式来展示数据分页。下面将详细解释`pager-...
**Pager-taglib分页方法详解** Pager-taglib是Java Web开发中一种常用的分页标签库,它极大地简化了在JSP页面中实现分页功能的过程。这个标签库通常与Servlet和JSP一起使用,尤其在大数据量展示时,提供用户友好的...
Pager Taglib是Java Web开发中的一个强大工具,主要用于实现页面的分页功能。它提供了一组自定义的JSP标签,简化了在网页上创建分页链接的过程,使得开发者可以更加专注于业务逻辑,而不是分页的实现细节。Pager ...
**标题解析:**"pager-taglib-2.0 JSP分页组件" 是一个专用于JSP页面的分页功能的库,版本为2.0。分页是Web应用程序中常见的功能,它允许用户在大量数据中进行导航,通常用于数据库查询结果的展示,如电商网站的商品...
这是pager-taglib的官方源码,但在采用官方的pager-taglib分页传输中文参数会出现乱码,所以我采用maven新建一个pager-taglib项目对pager-taglib的源码进行小小的改动,是他支持中文传输,更重要的是把源代码提供给...
Displaytag和Pager-taglib是两个在Java Web开发中常用的分页库,主要用于处理大量数据的显示,提升用户体验,减轻服务器压力。这两个库都是基于JSP标签库(Tag Library)实现的,可以方便地集成到Spring、Struts等...
在这个“pager-taglib分页例子”中,我们将探讨如何使用`pager-taglib`进行高效且简洁的分页实现。 首先,`pager-taglib`提供了几个预定义的标签,如`<pg:pager>`、`<pg:firstPage>`、`<pg:lastPage>`、`...
利用pager-taglib进行查询分页时需要添加该jar包:pager-taglib.jar