DisplayTag 1.1 Released,可分頁讀取數(shù)據(jù)!!!
DisplayTag一直以來為人們所詬病的缺點就是它的裝載數(shù)據(jù)的方式: 一次性把所有數(shù)據(jù)讀取到內存中,然后再分頁顯示。這樣做的后果就是在處理大批量數(shù)據(jù)時力不從心,可用性急劇下降,并且在翻頁顯示的僅僅是內存中的數(shù)據(jù)而不是實時數(shù)據(jù).因此人們往往只是在實現(xiàn)小型項目的小數(shù)量表格分頁顯示時才想到DisplayTag,并且因為考慮到項目的擴展往往最終棄用DiaplayTag.
但是發(fā)布于本月12日的1.1版本徹底解決了這個問題,新版的DisplayTag提供了兩種方式實現(xiàn)部分裝入數(shù)據(jù):
(1)實現(xiàn)接口 org.displaytag.pagination.PaginatedList,用戶可以實現(xiàn)這個接口用來代替以前傳入DisplayTag的list對象,DisplayTag將認為分頁和排序的動作已經(jīng)由外部動作執(zhí)行了,而不會使用 原來的分頁方式(即全部讀入內存).但是這樣用戶需要自己編寫分頁和排序代碼;
(2)設置相應參數(shù),告訴DisplayTag傳入的數(shù)據(jù)集由外部分頁和排序,而不使用默認的方式.比如:

其中:
sort="external" 告訴DisplayTag傳入的數(shù)據(jù)集已經(jīng)由外部程序排好序了..
defaultsort="1" 說明默認是升序(Descending is 2, Ascending is 1);
partialList="true" 說明部分裝入數(shù)據(jù);
pagesize="20" 每頁顯示記錄數(shù);
size="resultSize" 顯示記錄的總條數(shù)(此參數(shù)結合PageSize,使得表格在只拿到某一頁的完整數(shù)據(jù)的同時,可以知道會有多少頁,并將其他的頁數(shù)也列舉出來,當用戶實際翻頁時才去獲取當頁數(shù)據(jù));
關于以上翻頁范例的詳細內容可以查看發(fā)布包文檔中的External paging/sorting 一節(jié)。