使用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="${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> 

 

你可能感兴趣的:(PAGER)