標籤:
//Dao類中實現了list集合和pagetotal方法package zjf.strhib.Dao;import java.util.ArrayList;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class PageDao { public List pageQuery(int pageSize, int pageNow) { List list = new ArrayList(); SessionFactory sessionfactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionfactory.openSession(); try { // session =new // Configuration().configure().buildSessionFactory().openSession(); session.beginTransaction(); // 得到每頁顯示的LevTwoInFuUser的對象的集合list list = session.createQuery("from user order by id") .setFirstResult(pageNow * pageSize - pageSize) .setMaxResults(pageSize).list(); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { // HibernateUtils.getSessionFactory().close(); // NewHibernateUtil.closesessicon(); session.close(); } return list; } public int pageTotle(int pageSize, int pageNow) { int i = 0; SessionFactory sessionfactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionfactory.openSession(); try { // session = HibernateUtils.getSessionFactory().getCurrentSession(); session.beginTransaction(); // i是查詢結果條數 i = session.createQuery("from user").list().size(); // 用總的結果條數對每頁顯示的條數取餘,得到總頁數 i = i % pageSize == 0 ? i / pageSize : i / pageSize + 1; session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { // HibernateUtils.getSessionFactory().close(); // NewHibernateUtil.closesessicon(); session.close(); } return i; }}//Pagequery中實現了Dao介面package zjf.strhib.action;import java.util.List;import zjf.strhib.Dao.PageDao;public class Pagequery { private List list; private int pageNow = 1 ; //初始化為1,預設從第一頁開始顯示 private int pageSize = 2 ; //每頁顯示3條記錄 private int pageTotle= 1 ;//總頁數 private PageDao pageDao = new PageDao () ; public List getList() { return list; } public void setList(List list) { this.list = list; } public int getPageNow() { return pageNow; } public void setPageNow(int pageNow) { this.pageNow = pageNow; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageTotle() { return pageTotle; } public void setPageTotle(int pageTotle) { this.pageTotle = pageTotle; } public String fenye(){ //得到每頁顯示的對象的集合list list = pageDao.pageQuery(pageSize, pageNow); //得到總頁數pageTotle pageTotle=pageDao.pageTotle(pageSize, pageNow); return "success"; }}//Page頁面顯示<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%><%@taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <SCRIPT type="text/javascript" src="js/calendar.js"></SCRIPT> <base href="<%=basePath%>"> <title>分頁</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"> </head> <body> <table border="1"> <tr> <th> 使用者編號 </th> <th> 真實姓名 </th> </tr> <!-- 迭代查詢 --> <s:iterator value="list"> <tr> <td> <s:property value="name" /> </td> <td> <s:property value="password" /> </td> </tr> </s:iterator> </table> <!-- 首頁 --> <s:url id="url_first" value="page.action"> <s:param name="pageNow" value="1"></s:param> </s:url> <!-- 上一頁 --> <s:url id="url_pre" value="page.action"> <s:param name="pageNow" value="pageNow-1"></s:param> </s:url> <!-- 下一頁 --> <s:url id="url_next" value="page.action"> <s:param name="pageNow" value="pageNow+1"></s:param> </s:url> <!-- 末頁 --> <s:url id="url_last" value="page.action"> <s:param name="pageNow" value="pageTotle"></s:param> </s:url> <!-- 如果不是首頁則提供首頁的連結,如果是首頁則不提供連結,以下類似 --> <s:if test="pageNow != 1"> [<s:a href="%{url_first}">首頁</s:a>] </s:if> <s:else> [首頁] </s:else> <s:if test="pageNow>1"> [<s:a href="%{url_pre}">上一頁</s:a>] </s:if> <s:else> [上一頁] </s:else> <s:if test=" pageTotle > pageNow "> [<s:a href="%{url_next}">下一頁</s:a>] </s:if> <s:else> [下一頁] </s:else> <s:if test="pageTotle != pageNow"> [<s:a href="%{url_last}">末頁</s:a>] </s:if> <s:else> [末頁] </s:else> 第${pageNow}頁/ 共${pageTotle}頁 </body></html>
struts2+hibernate(分頁實現)