分页类实例 java
生活随笔
收集整理的這篇文章主要介紹了
分页类实例 java
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
保存代碼片段
?
分頁類:
分頁類,點擊查看 1 package cn.news.vo; 2 3 import java.util.List; 4 /** 5 * 用于在頁面上使用的數據類,包含有分頁的信息及相應的數據 6 * @author Administrator 7 * @param <T> 檢索的數據實體類型 8 */ 9 public class PageData<T> { 10 private List<T> list ; 11 private boolean isFirst=false; //是否是首頁 12 private boolean isEnd=false; //是否是尾頁 13 private int page=1; //跳轉頁,默認為第一頁 14 private int count=10; //每頁的記錄數,默認每頁顯示10條記錄 15 private int totalPage; //總共的頁碼 16 private int totalRows; //總共的記錄數 17 private int realRowIndex; //該分頁在數據庫中真實的記錄行數 18 19 /** 20 * 在DaoImpl中取得查詢實體的總記錄后設置該屬性 21 * 跳轉的頁面、每頁的記錄、總記錄,三個已知可以確定本類中的分頁屬性 22 * @param totalRows 23 */ 24 public void setTotalRows(int totalRows) { 25 if (totalRows==0) { 26 totalPage = 1 ; 27 }else{ 28 this.totalPage = totalRows/count+1 ; //可以得到全部的頁面 29 } 30 this.init(); //設置分頁的基本數據 31 this.totalRows = totalRows; 32 } 33 34 public void init(){ //初始化分頁的基本數據 35 if(page < 1){ 36 page = 1 ; 37 } 38 if(page<totalPage){ 39 if(page==1){ 40 isFirst = true ; 41 isEnd = false ; 42 } 43 }else if(page==totalPage){ 44 if (page==1) { 45 isFirst = true ; 46 isEnd = true ; 47 }else{ 48 isFirst = false ; 49 isEnd = true ; 50 } 51 }else if(page>totalPage){ 52 page = totalPage; 53 if (totalPage==1) { 54 isFirst = true ; 55 isEnd = true ; 56 }else { 57 isFirst = false ; 58 isEnd = true ; 59 } 60 } 61 realRowIndex = (page-1)*count ; 62 } 63 @Override 64 public String toString() { 65 return "PageData [isFirst=" + isFirst + ", isEnd=" + isEnd + ", page=" 66 + page + ", count=" + count + ", totalPage=" + totalPage 67 + ", totalRows=" + totalRows + ", realRowIndex=" + realRowIndex 68 + "]"; 69 } 70 public List<T> getList() { 71 return list; 72 } 73 public void setList(List<T> list) { 74 this.list = list; 75 } 76 public int getRealRowIndex() { 77 return realRowIndex; 78 } 79 public int getPage() { 80 return page; 81 } 82 public void setPage(int page) { 83 this.page = page; 84 } 85 public int getCount() { 86 return count; 87 } 88 public void setCount(int count) { 89 this.count = count; 90 } 91 public int getTotalPage() { 92 return totalPage; 93 } 94 public void setTotalPage(int totalPage) { 95 this.totalPage = totalPage; 96 } 97 public boolean getIsFirst() { 98 return isFirst; 99 } 100 public void setIsFirst(boolean isFirst) { 101 this.isFirst = isFirst; 102 } 103 public boolean getIsEnd() { 104 return isEnd; 105 } 106 public void setIsEnd(boolean isEnd) { 107 this.isEnd = isEnd; 108 } 109 public int getTotalRows() { 110 return totalRows; 111 } 112 }使用 Hibernate 的 DaoImpl 中的方法:
DaoImpl 1 public PageData<V> findOnPage(PageData<V> page) { 2 List<V> list = null ; 3 String hql = "from "+ this.entityClazz.getName()+" order by id desc"; 4 try { 5 page.setTotalRows(getTotalRows()); 6 list = this.getSession().createQuery(hql) 7 .setFirstResult(page.getRealRowIndex()) 8 .setMaxResults(page.getCount()) 9 .list(); 10 page.setList(list); 11 } catch (DataAccessResourceFailureException e) { 12 e.printStackTrace(); 13 } catch (HibernateException e) { 14 e.printStackTrace(); 15 } catch (IllegalStateException e) { 16 e.printStackTrace(); 17 } 18 return page; 19 }前臺導航欄(Struts2 標簽):
前臺導航欄 1 pageData為 action 中的分頁類的對象 2 3 <td> 4 <s:if test="pageData.isFirst"> 5 首頁 | 6 上一頁 | 7 </s:if> 8 <s:else> 9 <a href="newsAction-findByPage?pageData.page=1">首頁</a> | 10 <a href="newsAction-findByPage?pageData.page=${pageData.page-1}">上一頁</a> | 11 </s:else> 12 <s:if test="pageData.isEnd"> 13 下一頁 | 14 尾頁 | 15 </s:if> 16 <s:else> 17 <a href="newsAction-findByPage?pageData.page=${pageData.page+1}">下一頁</a> | 18 <a href="newsAction-findByPage?pageData.page=${pageData.totalPage}">尾頁</a> | 19 </s:else> 20 轉到 <input type="text" style="width: 30px"> 頁 21 <input type="button" value="跳轉" />,共 ${pageData.totalPage} 頁 22 </td>轉載于:https://www.cnblogs.com/evilgod528/archive/2012/08/01/2619051.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的分页类实例 java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: string match
- 下一篇: WRF参数配置(PartI)