分頁是比較常用的一種技術,也有很多實現方法。我介紹一下如何用pager-taglib來分頁
轉:
Pager-taglib 2.0 是一套分頁標籤庫,可以靈活地實現多種不同風格的分頁導航頁面,並且可以很好的與服務器分頁邏輯分離。這樣一套標籤庫,你想你的分頁效果怎樣就能怎樣。
pager-taglib,可以方便的幫我們完成分頁的功能,當然大家不要擔心他的效率,它支持每次從數據庫中只取出要顯示的數據,這樣可以減少數據庫的壓力。
簡單說一下它的怎麼使用:
1、拷貝pager-taglib.jar包
2、在JSP頁面中使用taglib指令引入pager-taglib標籤庫
3、使用pager-taglib標籤庫進行分頁處理
pg:pager【這個標籤用來設置分頁的總體參數】重要參數說明:
url:分頁的鏈接根地址,pager標籤會在這個鏈接的基礎上附加分頁參數
items:總記錄數,pager標籤正是根據這個值來計算分頁參數的
maxPageItems:每頁顯示的行數,默認爲10
maxIndexPages:在循環輸出頁碼的時候,最大輸出多少個頁碼,默認是10
pg:first【第一頁的標籤】重要參數說明:
export變量的意義:
pageUrl - 分頁鏈接URL地址(最重要的export參數)
pageNumber - 頁碼
firstItem - 首頁第一行的索引值
lastItem - 首頁最後一行的索引值
pg:pre【上一頁標籤】重要參數說明:
export變量的意義:
pageUrl - 分頁鏈接URL地址(最重要的export參數)
pageNumber - 頁碼
firstItem - 前頁第一行的索引值
lastItem - 前頁最後一行的索引值
pg:next【下一頁標籤】重要參數說明:
export變量的意義:
pageUrl - 分頁鏈接URL地址(最重要的export參數)
pageNumber - 頁碼
firstItem - 下頁第一行的索引值
lastItem - 下頁最後一行的索引值
pg:last重要參數說明:
export變量的意義:
pageUrl - 分頁鏈接URL地址(最重要的export參數)
pageNumber - 頁碼
firstItem - 尾頁第一行的索引值
lastItem - 尾頁最後一行的索引值
pg:pages【這個標籤用來循環輸出頁碼信息】重要參數說明:
export變量的意義:
pageUrl - 分頁鏈接URL地址(最重要的export參數)
pageNumber - 頁碼
firstItem - pageNumber這個頁碼指定的那一頁的第一行的索引值
lastItem - pageNumber這個頁碼指定的那一頁的最後一行的索引值
簡單的一個網頁標籤的使用:
<pg:pager items="1001" export="currentPageNumber=pageNumber">
<pg:first><a href="${pageUrl}">首頁</a></pg:first>
<pg:prev><a href="${pageUrl}">前頁</a></pg:prev>
<pg:pages>
<c:choose>
<c:when test="${pageNumber eq 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}">下頁</a></pg:next>
<pg:last><a href="${pageUrl}">尾頁</a></pg:last>
</pg:pager>
需要注意的地方:很重要,我就是在這裏翻了跟頭了的
1.Pager-taglib向頁面傳的參數是:pager.offset,這個參數的意思是頁面的偏移量,也就是指你說選擇的頁面的頁數。這個參數貌似從0開始,也就是你選擇第一頁的話它傳的參數是0.所以在捕獲這個參數的時候要記得+1.
2.這個標籤的使用其實很簡單,你要做的就是簡單地寫一個控制文件,可以是servlet,可以是portlet,也可以直接放在jsp裏,然後去頁面捕捉pager.offset這個參數去數據庫中重新挖取數據。
3.切記,offset傳過來的值是偏移量,也就是指下一堆記錄的第一條的偏移量,比如你的記錄/頁pageSize=3,那麼傳過來的offset應該如下處理:offset/3+1 這樣得到的就是要生成的頁數!
offset/