
由于displayTag只處理數(shù)據(jù)的顯示,傳遞給他多少數(shù)據(jù),它會根據(jù)數(shù)據(jù)的記錄數(shù)及其
每頁顯示多少計算出需要的頁數(shù),
但是在處理大數(shù)據(jù)量集合的時候,會遇到問題,就是將所有的數(shù)據(jù)傳遞給displayTag表格顯示標(biāo)簽
變得不現(xiàn)實也沒有必要,如何既能夠用到dispalyTag強大的顯示功能,用能夠很好的處理大數(shù)據(jù)量的
顯示和分頁功能呢?
基于以下幾點
1 盡量不要更改原displayTag標(biāo)簽的源代碼,該部分由原作者更改更為合適
2 盡量少的限制原有標(biāo)簽的功能
3 即插即用,非強迫性的.
4 和數(shù)據(jù)庫等數(shù)據(jù)源分離,做到無依賴
如何解決display?
既然不要更改原來的dispalyTag源碼,那么就自己做一個標(biāo)簽了,主要就是解決大數(shù)據(jù)量顯示和分頁功能
那就自己做一個分頁功能的標(biāo)簽,數(shù)據(jù)集合由用戶自己定義,標(biāo)簽只提供一些頁面的傳遞信息和
一些用戶用來部分提取數(shù)據(jù)的基本數(shù)據(jù)
本人又做了一個DisplayTagPro標(biāo)簽用于解決這樣的問題,用法很簡單,又可以用DisplayTag的強大的顯示功能
完全解決了以前我做的那個標(biāo)簽的局限性
上面那個圖片顯示的信息看到藍(lán)框中的信息是DispalyTag顯示的,下面的分頁功能是DisplayTagPro顯示的.
同時本標(biāo)簽針對經(jīng)常要根據(jù)顯示的信息進行查詢,篩選等需求,增加了用戶自定義信息的功能,用戶可以在
PageInfo類中得到這些信息進行對集合的進一步處理,達(dá)到自定義查詢等其他要求.
》》》源代碼:
http://www.tkk7.com/Files/qixin000/displaytagpro.rar 該部分代碼已經(jīng)和displayTag沒有關(guān)系了,當(dāng)然如果和displaytag結(jié)合也沒有問題
我發(fā)現(xiàn)displaytag有個問題,就是在處理自由布局時,在翻到第二頁是有問題,不知大家遇到過沒有
所以最終我拋棄了displaytag標(biāo)簽,而用jstl及其el來做顯示,很好用用法:
可以在Demo中看到,可以一般的標(biāo)簽用法一樣:
修改web.xml ,工程中引入displaytagpro.jar
頁面上的用法:
<%@ taglib prefix="qixin" uri="qixin000" %>
<%
request.setAttribute("w_testId_name", "qixin");
request.setAttribute("w_testId_age", 10);
%>
<qixin:displaywrap uid="testId" name="test" pagesize="5" userclass="com.test.displaytag.DisplayTagTestHandle" />
處理類的定義:
該類用戶可以自定義,只需繼承抽象類AbstractHandler,實現(xiàn)Object getDisplayCollection(PageInfo pageInfo)方法即可,用戶可以從pageInfo中得到需要的信息,有很多
注意:本標(biāo)簽部分限制了DisplayTag標(biāo)簽的功能
1 一個頁面不能夠有兩個DisplayTag標(biāo)簽了,遺憾,但是我不經(jīng)常這樣做
解決辦法:可以通過frame來解決
2 DisplayTagPro標(biāo)簽的uid,name要和DisplayTag的uid,id,name相同,pagesize屬性也要相同
uid相同是為了計算d_\d+_[o|s|p]中間的數(shù)字用的
name相同,是為了形成的集合便于DisplayTag顯示
pagesize相同是為了不讓DisplayTag標(biāo)簽顯示自己的分頁功能
3 用戶自定義的信息必須是d_myid_w[0-9],例如(d_myid_w0,d_myid_w1)
定義之后可以在自定義的類中通過pageInfo.getAddinInfo()進行提取,做進一步的處理.
可以通過這個功能達(dá)到更復(fù)雜的處理.
4 userclass為用戶自定一個數(shù)據(jù)處理類,在這個完成數(shù)據(jù)的最終提取,在這里用戶可從pageInfo中
得到很多關(guān)于頁面上的信息,及其分頁信息
其他的限制倒不是很多!
由于這個標(biāo)簽比較簡單,所以我就沒有寫更多的幫助文檔,很多可以根據(jù)命名和注釋即可了解!
注意:
本標(biāo)簽只支持jdk1.5以上,我用了foreach
jsp版本我倒是不知道,但是我在jboss4.2,tomcat5上測試通過,版本沒看!