使用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="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="https://www.likecs.com/${pageUrl }">首页</a>
         </pg:first>
         <pg:prev>
             <a href="https://www.likecs.com/${pageUrl }">前页</a>
         </pg:prev>
         <pg:pages>
             <c:choose>
                 <c:when test="${pageNumber ==  currentPageNumber}">
                     <font>${pageNumber }</font>
                 </c:when>
                 <c:otherwise>
                     <a href="https://www.likecs.com/${pageUrl }">${pageNumber }</a>
                 </c:otherwise>
             </c:choose>
         </pg:pages>
         <pg:next>
             <a href="https://www.likecs.com/${pageUrl }&str=aaaa">下一页</a>
         </pg:next>
         <pg:last>
             <a href="https://www.likecs.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="https://www.likecs.com/<%=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="https://www.likecs.com/styles.css">
    -->
  </head>
</head> 
<body> 
    <c:forEach items="${user }" var="u">
        ${u.uname }
    </c:forEach>
    <page:page numPerPage="${numPerPage }" totalCount="${totalCount }"></page:page>
</body> 
</html> 
© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章