• 使用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> 
  • 相关阅读:
    SQL Server的全局变量
    SQL局部变量
    视图和表之间的区别和联系
    SQL Server中开发常用的数据类型
    Bootstrap 字体图标、下拉菜单、按钮组
    Bootstrap 按钮,图片,辅助类
    Bootstrap表单
    Bootstrap表格
    Bootstrap排版类
    Bootstrap网格系统
  • 原文地址:https://www.cnblogs.com/danmao/p/4190681.html
Copyright © 2020-2023  润新知