小菜毛毛技術(shù)分享

          與大家共同成長(zhǎng)

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks
          1. 分頁(yè)
              如果想對(duì)代碼分頁(yè),只需在display:table標(biāo)簽中添加一項(xiàng)pagesize="每頁(yè)顯示行數(shù)",如

          2. 對(duì)列排序
              display tag可對(duì)列進(jìn)行排序,就是點(diǎn)擊列名,對(duì)該列的數(shù)據(jù)進(jìn)行排序。你只需對(duì)想要排序的列添加 sort="true" 就OK,如下面的代碼可對(duì)前三列進(jìn)行排序。在display:table中添加defaultsort="列數(shù)",可默認(rèn)對(duì)指定的列排序。

            
          如果table有分頁(yè),Display Tag默認(rèn)只對(duì)當(dāng)前頁(yè)進(jìn)行排序,如果想對(duì)整個(gè)list排序,可以在display:table之間添加一段代碼:

          3.
          導(dǎo)出數(shù)據(jù)
              在display:table中添加export="true",看看會(huì)出現(xiàn)什么!Display Tag默認(rèn)會(huì)提供三種數(shù)據(jù)導(dǎo)出方式:CSV、Excel、XML 。
              另外Display Tag還可以導(dǎo)出為PDF格式,在http://prdownloads.sourceforge.net/itext/下載一個(gè)輔助包iText.jar,copy到lib目錄下,然后在display:table之間添加一段代碼:
          <display:setproperty name="export.pdf" value="true"></display:setproperty>,大功告成。<o:p></o:p>

          4. Display Tag的屬性設(shè)置
              前面所說(shuō)的display:setProperty 是一種改變Display Tag屬性的方法,但是在每個(gè)jsp中都要寫太麻煩了。
              Display Tag中設(shè)置了很多默認(rèn)的屬性,它有一個(gè)專門的屬性文件,是在它的jar包中的displaytag/properties/TableTag.properties
              想要改變它的默認(rèn)屬性,我們可以在WEB-INF"classes下新建一個(gè)文件displaytag.properties,仿照TableTag.properties中屬性的格式設(shè)置需要修改的屬性。

              TableTag.properties中的# messages中設(shè)置的是顯示在頁(yè)面上的提示信息。默認(rèn)是英文的,我們可以把它改為中文的。不過(guò)這里只能使用unicode,就是說(shuō)中文字符必須轉(zhuǎn)換為unicode碼,這個(gè)可以使用jdk自帶的native2ascii.exe進(jìn)行轉(zhuǎn)換。<o:p></o:p>

          5. 其它功能
              DisplayTag還有一些很實(shí)用的小功能,這里提兩個(gè)。一個(gè)是對(duì)數(shù)據(jù)的Format,這是1.1版本添加的新功能,可以使用標(biāo)簽的方式格式化時(shí)間、數(shù)字、字符串。比如日期,在需要格式化的column標(biāo)簽中添加format="{0,date,yyyy-MM-dd}",第一個(gè)參數(shù)為格式化的數(shù)據(jù)序號(hào),第二個(gè)參數(shù)是數(shù)據(jù)類型,數(shù)字為number,第三個(gè)參數(shù)為數(shù)據(jù)格式。
              另外一個(gè)功能是對(duì)table數(shù)據(jù)的合計(jì)功能。在table標(biāo)簽中添加 decorator="org.displaytag.decorator.TotalTableDecorator",然后在想要進(jìn)行合計(jì)的數(shù)據(jù)列的column標(biāo)簽中添加 total="true",該列就可以被計(jì)算總數(shù)了。但這個(gè)功能有個(gè)缺點(diǎn),不能用在有分頁(yè)的時(shí)候,它只能合計(jì)第一頁(yè)的數(shù)據(jù)。

          DisplayTag的不足
              初次使用DisplayTag的人可能會(huì)覺得驚喜,但是用久了會(huì)發(fā)現(xiàn)很多問題,最大的問題是對(duì)中文的支持不好,比如如果查詢條件中有中文,就無(wú)法翻頁(yè),無(wú)法對(duì)中文排序,將中文導(dǎo)出為指定文件時(shí)出現(xiàn)亂碼等等。這些問題有時(shí)候會(huì)讓人很郁悶,有時(shí)候逼得你要去修改它的源代碼。下面是對(duì)以上幾個(gè)問題的解決方法:
              1. 對(duì)于中文無(wú)法翻頁(yè)、排序,最簡(jiǎn)單的辦法是修改Tomcat下的server.xml文件。找到HTTP的Connector標(biāo)簽,在里面添加一項(xiàng)URIEncoding="...",引號(hào)里面的內(nèi)容取決于你的頁(yè)面編碼,比如可以是GBK,UTF8等。這樣上面兩個(gè)問題就可以解決了。
              2. 導(dǎo)出為文件:其實(shí)這個(gè)功能除了中文支持外還有很多其它問題,比如它會(huì)將Html標(biāo)簽一起導(dǎo)出、只導(dǎo)出顯示的內(nèi)容,但如果對(duì)table進(jìn)行了decorator,decorator后的內(nèi)容無(wú)法導(dǎo)出。如果想要將中文正確導(dǎo)出,需要修改DisplayTag源代碼。
              下載相同版本的源代碼,在org.displaytag.export.ExcelView.java文件中找到getMimeType()方法,將此方法修改為 return "application/vnd.ms-excel;charset=GB2312";,修改后導(dǎo)出數(shù)據(jù)的速度會(huì)慢很多,不過(guò)將就吧。
              3. 新版的DisplayTag1.1添加了對(duì)一次取部分?jǐn)?shù)據(jù)的支持,相關(guān)的標(biāo)簽包括partialList和size,需要設(shè)置partialList="true"和size的大小。具體怎么用偶還沒研究

          <display:table name="test" pagesize="10"></display:table><o:p></o:p>

          posted on 2009-05-30 12:56 小菜毛毛 閱讀(141) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 景泰县| 彭山县| 新密市| 保定市| 白山市| 绥德县| 临沂市| 斗六市| 平和县| 贵定县| 麟游县| 固原市| 新源县| 尼玛县| 昭觉县| 宜城市| 长汀县| 林甸县| 河间市| 马公市| 岫岩| 宜章县| 建平县| 太白县| 龙山县| 阿巴嘎旗| 滨海县| 大化| 镇平县| 广河县| 许昌县| 新源县| 丽水市| 西充县| 沁源县| 文成县| 舒城县| 宁津县| 广州市| 阳新县| 南漳县|