DisplayTag一直以來爲人們所詬病的缺點就是它的裝載數據的方式: 一次性把全部數據讀取到內存中,而後再分頁顯示。這樣作的後果就是在處理大批量數據時力不從心,可用性急劇降低,而且在翻頁顯示的僅僅是內存中的數據而不是實時數據.所以人們每每只是在實現小型項目的小數量表格分頁顯示時纔想到DisplayTag,而且由於考慮到項目的擴展每每最終棄用DiaplayTag.
可是發佈於本月12日的1.1版本完全解決了這個問題,新版的DisplayTag提供了兩種方式實現部分裝入數據:
(1)實現接口
org.displaytag.pagination.PaginatedList,用戶能夠實現這個接口用來代替之前傳入DisplayTag的list對象,DisplayTag將認爲分頁和排序的動做已經由外部動做執行了,而不會使用 原來的分頁方式(即所有讀入內存).可是這樣用戶須要本身編寫分頁和排序代碼;
(2)設置相應參數,告訴DisplayTag傳入的數據集由外部分頁和排序,而不使用默認的方式.好比:
<display:table name="testList" sort="external" defaultsort="1" pagesize="20" id="element" partialList="true" size="resultSize">

其中:
sort="external"  告訴DisplayTag傳入的數據集已經由外部程序排好序了..
defaultsort="1" 說明默認是升序(Descending is 2, Ascending is 1);
partialList="true" 說明部分裝入數據;
pagesize="20" 每頁顯示記錄數;
size="resultSize" 顯示記錄的總條數(此參數結合PageSize,使得表格在只拿到某一頁的完整數據的同時,能夠知道會有多少頁,並將其餘的頁數也列舉出來,當用戶實際翻頁時纔去獲取當頁數據);