首页 > 代码库 > 使用pager进行分页

使用pager进行分页

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="http://www.mamicode.com/true" %><%@attribute name="numPerPage" required="true" rtexprvalue="http://www.mamicode.com/true" %><pg:pager items="${totalCount }" url="user" export="currentPageNumber=pageNumber"     maxPageItems="${numPerPage }" maxIndexPages="5">                   <pg:first>             <a href="http://www.mamicode.com/${pageUrl }">首页</a>         </pg:first>         <pg:prev>             <a href="http://www.mamicode.com/${pageUrl }">前页</a>         </pg:prev>         <pg:pages>             <c:choose>                 <c:when test="${pageNumber ==  currentPageNumber}">                     <font color="red">${pageNumber }</font>                 </c:when>                 <c:otherwise>                     <a href="http://www.mamicode.com/${pageUrl }">${pageNumber }</a>                 </c:otherwise>             </c:choose>                      </pg:pages>         <pg:next>             <a href="http://www.mamicode.com/${pageUrl }&str=aaaa">下一页</a>                      </pg:next>         <pg:last>             <a href="http://www.mamicode.com/${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="http://www.mamicode.com/">        <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="http://www.mamicode.com/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> 

 

使用pager进行分页