熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Hibernate分頁的設計和編碼

2013-11-23 20:31:53  來源: Java開源技術 

   當前頁碼的表單參數 listuserdo?page=

  同時轉換成一個 int 類型的頁碼變量

  int currentPage = IntegerparseInt(

  requestgetParameter(page// 當前頁

   下一頁 listuserdo?page=${currentPage+}

  上一頁 listuserdo?page=${currentPage}

   一頁顯示多少數據

  int pageSize = ;//每頁顯示的數據數

   總頁數 totalPage

  ) 先從數據庫取得總記錄數

  daoUserDAO#getUserTotalCount()

  int totalCount = executeQuery(select count(*) from Users

  ) 根據一頁的數據類計算出總頁數

  daoUserManager#getTotalPage(int pageSize)

  // 得到頁面總數

  int totalPageCount = ((totalCount + pageSize) ) / pageSize;

  if(totalPageCount == ) {

  totalPageCount = ;

  }

   從數據庫裡把第currentPage頁的數據讀取出來(Hibernate) DAO 層的代碼

  daoUserDAO#findPagedAll(int currentPage int pageSize)

  兩個參數 currentPage 當前頁(從開始的)

  pageSize 取多少數據

  String queryString = from User;

  Query queryObject = getSession()createQuery(queryString)

  queryObjectsetFirstResult((currentPage ) * pageSize)

  queryObjectsetMaxResults(pageSize)

  List result = queryObjectlist()

  時間

   在前台顯示上下頁的鏈接並根據總頁數的上下限來避免讓用戶跳到第頁或者比最大頁數還大的頁碼哪裡

  <c:if test=${currentPage > }>

  [ 上一頁的鏈接 ]

  </c:if>

  <c:if test=${currentPage <= }>

  [ 上一頁的文本 ]

  </c:if>

   通過 forEach 來顯示數據

  <c:forEach items=${users} var=user >

  ${userid}

  ${userusername}

  <c:/forEach>

   通過下拉菜單來跳轉頁面

  轉到

  <script>

  // 頁面跳轉函數

  // 參數 包含網址的選擇框(SELECT元素)

  function jumpPage(select) {

  var newUrl = /hibernate_page/indexjsp?page= + selectvalue;

  //alert(newUrl)

  documentlocation = newUrl;

  }

  </script>

  <! 輸出 HTML SELECT 元素 並選中當前頁面編碼 >

  <select onchange=jumpPage(this)>

  <option value= selected>頁</option>

  <option value= >頁</option>

  </select>


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28622.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.