pager-taglib 體驗
??????可能是自已習慣了用自已的分頁組件。一直不知道有這樣一個現成的分頁標簽。直到那天,白衣跟我提起了一下,我Search了一下,發現了Pager-taglib這個東東。支持多種風格的分頁顯示。
?????? 先簡單介紹一下Pager-taglib。實際上,她是一個Jsp標簽庫,為在JSP上顯示分頁信息而設計的一套標簽,通過這些標簽的不同的組合,會形成多種不一樣的分頁頁面,風格各異,她自帶的DEMO就有七種左右的分頁風格,包括Google的分頁風格。而需要訂制自已的風格的分頁頁面也非常簡單。
??????接觸的當天、匆匆看了下Demo和文檔,發現這個很早(2002年最新版一直到現在)就已經有的東西,似 乎比較擅長顯示端分頁。如,把所有的數據傳到頁面,通過參數設定頁面大小等,可能得到很完美的分頁效果。
??????第二天回家,做了些小動作,把一個頁碼參數塞進URL里面,讓程序在頁面之下分了頁再把結果傳出來,簡單地實現了服務器的分頁的功能。
??????Pager-taglib的文檔很詳盡,我如果有說也只有翻譯的份,要是真的翻譯也就免了,文檔還是挺容易看懂的。于是我開始作了另外一個小Demo,用了原先Demo里面的一個分頁風格(Simple),稍作修改。希望能幫助自已理清脈絡和對朋友們有用:P
一、模擬業務類:




















































































二、JSP代碼:
本頁面提供了列表、查找功能。目的在于演示在Pager-taglib里面如何傳遞參數(如Form的Post后URL是找不到參數的,但是要保持原來的查詢條件必須把這些參數在分頁的時候加到URL上去)。




















































從頁面里可以看到,這里使用了三個標簽
1、<pg:pager>,在這個標簽庫里就充當著一個領袖的作用,一切子標簽都在它里面工作。就以上出現的參數進行解釋一下:
items:數據的紀錄數
index:說起來比較麻煩,反正是一次大跳躍之后,當前頁面在各個頁數的什么位置,默認為Center,不動也罷了。
maxPageItems:顯示最多的紀錄數/頁
maxIndexPages:顯示最多的分頁數/次,如設為5的話,則會出現這樣的情況 1 2 3 4 5 .或 3 4 5 6 7 這樣的形式,其實她自帶的DEMO都喜歡把頁數展現出來排成一排。
isOffset:與pg:item配套使用,頁pg:item基本上被我淘汰出局。
export:這個屬性比較重要,文檔也對此作好相對長篇幅的說明。這個屬性是讓標簽給你暴露什么變量,當然這些變量是有選擇的,如在Pager標簽里,可以暴露出來的變量有pageOffset及pageNumber,即頁碼偏移量及頁碼。通過這兩個變量名,可以在Jsp或Java里面從Request里獲得。Export屬性接受的值還有表達式,如currentPage=pageNumber表示,把pageNumber的值暴露出來,并賦給一個叫CurrentPage的變量,這個變量將被保存到Request中,在Jsp或Java中可以得到。
scope:咳。還需要講么?
2、<pg:param>這個標簽很有用,用來設置將要加入到URL的變量。使用Name屬性指定即可。
3、<pg:index>這個標簽說明分頁顯示開始了。跳進我們Include的頁面。再看看詳細的情況。
三、分頁顯示頁面
























沒錯,你看到的這些標簽都是導航標簽。很容易明白,用法基本上一致,從標簽的名字上就能看出是什么作用。告訴你我動了手腳的地方就是我在每一個PageUrl后面都加了&pageNo=<%= pageNumber %>。讓我們的URL帶上頁碼的參數,這樣程序可以拿到頁碼去查找所需要的數據。
結果很理想。在SpringSide領了個分頁標簽的任務,原來還想著自已實現一套標簽的。還好被白衣喝住了。。卡卡。摸清楚了整套標簽的使用方法后,很容易就可以把一些重復的東西再稍作封裝,變成有“特色”的東西。幸虧沒有重復發明輪子(臉紅啊,還發明呢~~~)。
???????天色已早。這幾天再繼續研究和“拿來”。有經驗再一起交流。。
參考資料:
http://jsptags.com/tags/navigation/pager/index.jsp?Pager-taglibs官網
http://www.springside.org.cn/?SpringSide 春天的旁邊(需要我們的參與)
posted on 2006-06-27 02:22 艾塵 閱讀(6144) 評論(7) 編輯 收藏 所屬分類: pick up