pager jar网址:http://java2s.com/Code/Jar/t/Downloadtaglibspagejar.htm
package com.binary.entity; import java.util.List; public class PageModel<T> { private long total;//页数 private List<T> dates;//当前页的数据 public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } public List<T> getDates() { return dates; } public void setDates(List<T> dates) { this.dates = dates; } }
package com.binary.entity; public class Pager { private int offset;//offset表示从那一页开始记录 public int getOffset() { return offset; } public void setOffset(int offset) { this.offset = offset; } }
package com.binary.entity; import java.util.HashSet; import java.util.Set; /** * User entity. @author MyEclipse Persistence Tools */ public class User implements java.io.Serializable { // Fields private Integer id; private String uname; private String upass; private String meun; // Constructors /** default constructor */ public User() { } /** minimal constructor */ public User(String meun) { this .meun = meun; } /** full constructor */ public User(String uname, String upass, String meun, Set meuns) { this .uname = uname; this .upass = upass; this .meun = meun; } // Property accessors public Integer getId() { return this .id; } public void setId(Integer id) { this .id = id; } public String getUname() { return this .uname; } public void setUname(String uname) { this .uname = uname; } public String getUpass() { return this .upass; } public void setUpass(String upass) { this .upass = upass; } public String getMeun() { return this .meun; } public void setMeun(String meun) { this .meun = meun; } }
import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.binary.entity.PageModel; import com.binary.entity.User; public class UserDao { public PageModel<User> getUsers( int offset, int maxResult) { Configuration cf = new Configuration().configure(); SessionFactory sf = cf.buildSessionFactory(); Session session = sf.openSession(); Query q = session.createQuery("from User" ); PageModel <User> users= new PageModel<User> (); users.setTotal(q.list().size()); q.setFirstResult(offset); q.setMaxResults(maxResult); users.setDates(q.list()); session.close(); return users; } }
package com.dan.biz; import com.binary.entity.PageModel; import com.binary.entity.User; import com.dan.dao.UserDao; public class UserBiz { public PageModel<User> getUsers( int offset, int maxResult) { return new UserDao().getUsers(offset, maxResult); } }
package com.dan.action; import org.apache.struts2.ServletActionContext; import com.binary.entity.PageModel; import com.binary.entity.Pager; import com.binary.entity.User; import com.dan.biz.UserBiz; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private Pager pager= new Pager(); // 存放偏移量 private int numPerPage=2; // 每页的数据量 private long totalCount; // 总页数 private String str; public String getStr() { return str; } public void setStr(String str) { this .str = str; } public Pager getPager() { return pager; } public void setPager(Pager pager) { this .pager = pager; } public int getNumPerPage() { return numPerPage; } public void setNumPerPage( int numPerPage) { this .numPerPage = numPerPage; } public long getTotalCount() { return totalCount; } public void setTotalCount( long totalCount) { this .totalCount = totalCount; } public String execute() { System.out.println(str); UserBiz biz = new UserBiz(); PageModel <User> users= biz.getUsers(pager.getOffset(), numPerPage); totalCount = users.getTotal(); ServletActionContext.getRequest().setAttribute( "user" , users.getDates()); return SUCCESS; } }
page.tag封装成tag标签 <%@tag pageEncoding="utf-8" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="pg" uri="/WEB-INF/lib/pager-taglib.jar" %> <%@attribute name="color" required="true" %> <%@attribute name="totalCount" required="true" rtexprvalue="true" %> <%@attribute name="numPerPage" required="true" rtexprvalue="true" %> <pg:pager items="${totalCount }" url="user" export="currentPageNumber=pageNumber" maxPageItems ="${numPerPage }" maxIndexPages="5"> <pg:first> <a href="${pageUrl }">首页</a> </pg:first> <pg:prev> <a href="${pageUrl }">前页</a> </pg:prev> <pg:pages> <c:choose> <c:when test="${pageNumber == currentPageNumber}"> <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 }&str=aaaa">下一页</a> </pg:next> <pg:last> <a href="${pageUrl }">尾页</a> </pg:last> ${pageUrl } </pg:pager>
jsp代码 <%@ page language="java" import ="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="pg" uri="/WEB-INF/lib/pager-taglib.jar" %> <%@ taglib prefix="page" tagdir="/WEB-INF/tags" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/" ; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> </head> <body> <c:forEach items="${user }" var="u"> ${u.uname } </c:forEach> <page:page color="red" numPerPage="${numPerPage }" totalCount="${totalCount }"></page:page> </body> </html>