关于分页组件pager-taglib的一些代码分享
来源:互联网 发布:手机抢拍软件 编辑:程序博客网 时间:2024/05/16 10:27
第一步.使用该分页组件需要导入pager-taglib.jar包。
第二步.在jsp页面中导入标签<%@taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
第三部.复制代码如下
<pg:pager items="${pm.totalRows}"maxPageItems="${pm.pageSize}" maxIndexPages="20"export="currentPageNumber=pageNumber"url="User_findAllUser.action"><pg:param name="pid" /><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>第四步:新建一个分页工具类PageUtil来保存页面中分页组件传递过来的参数。
public class PageUtil {//线程本地变量 查询开始位置private static ThreadLocal<Integer> offsetTL=new ThreadLocal<Integer>();//线程本地变量 每页多少条private static ThreadLocal<Integer> pageSizeTL=new ThreadLocal<Integer>();public static void setOffset(int offset){offsetTL.set(offset);}public static void setPageSize(int pageSize){pageSizeTL.set(pageSize);}public static int getOffset(){return offsetTL.get();}public static int getPageSize(){return pageSizeTL.get();}public static void removePageSize(){pageSizeTL.remove();}public static void removeOffset(){offsetTL.remove();}}
第五部:新建一个实体类分页模型
import java.util.List;/** * 分页模板实体类 * @author 王伟 * * @param <E> */public class PageModel<E> {private List<E> dataList;private int totalRows;private int pageSize;public List<E> getDataList() {return dataList;}public void setDataList(List<E> dataList) {this.dataList = dataList;}public int getTotalRows() {return totalRows;}public void setTotalRows(int totalRows) {this.totalRows = totalRows;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}}
第六步:编写一个设置分页参数的过滤器PageFilter
public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {String offsetStr=req.getParameter("pager.offset");if(offsetStr!=null){PageUtil.setOffset(Integer.parseInt(offsetStr));}else{PageUtil.setOffset(0);}PageUtil.setPageSize(10);chain.doFilter(req, resp);PageUtil.removeOffset();PageUtil.removePageSize();}第七部:将分页过滤器配置到web项目中
<filter><filter-name>PageFilter</filter-name><filter-class>com.elisoft.wechat.filter.PageFilter</filter-class></filter><filter-mapping><filter-name>PageFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>第八步:根据PageUtil查询数据库获取数据,我自己项目使用的是持久层框架hibernate
//分页查询用户@SuppressWarnings("unchecked")public PageModel<User> findUser() {String hql="from User u where u.userName is not null ";Query query =this.getSession().createQuery(hql).setFirstResult(PageUtil.getOffset()).setMaxResults(PageUtil.getPageSize());List<User> userList=query.list();PageModel<User> pm=new PageModel<User>();pm.setPageSize(PageUtil.getPageSize());pm.setDataList(userList);hql="select count(*) "+getHQL(hql);query=this.getSession().createQuery(hql);long rows=(Long)query.uniqueResult();pm.setTotalRows((int)rows);return pm;}private String getHQL(String hql){int index=hql.indexOf("from");if(index==-1){index=hql.indexOf("FROM");}return hql.substring(index);}
如果是纯jdbc如mysql数据库可以在sql查询语句后面加上limit ?,?;第一个?表示从哪个位置开始查询,第二个?表示查询条数因此第一个位置应该是PageUtil.getOffset(),第二个位置是PageUtil.getPageSize();
至此,分页模型基本完成。
0 0
- 关于分页组件pager-taglib的一些代码分享
- Java中 分页组件Pager-taglib的使用
- pager-taglib分页的使用
- JSP通用分页组件 pager-taglib使用
- JSP通用分页组件 pager-taglib使用
- 关于如何使用pager-taglib分页
- SSH pager-taglib分页的实现 具体使用方法 分页pager
- SSH pager-taglib分页的实现 具体使用方法 分页pager
- SSH pager-taglib分页的实现 具体使用方法 分页pager
- ThreadLocal模式的分页pager-taglib
- S2SH中用pager-taglib进行的分页
- SSH pager-taglib分页的实现
- 比较简单的pager-taglib-2.0分页
- pager-taglib分页控件的使用总结
- pager-taglib.jar分页的用法
- SSH pager-taglib分页的实现
- pager-taglib分页处理的使用
- pager-taglib的使用(jsp分页)
- Spark调研笔记第5篇 - Spark API简介
- 安装peda
- vector的insert方法详解
- Windows环境下编译objective-c
- 生活中的PageRank
- 关于分页组件pager-taglib的一些代码分享
- socket地址和端口重用(造成bind出错)
- Qt之自定义界面(二)添加最小化、关闭按钮、添加背景
- android学习之---基本问题1
- Datatables之语言国际化
- 通过流迭代器实现vector的输入输出
- Linux-目录配置
- moses-chart笔记
- flask使用渲染模板