隨筆-26  評(píng)論-13  文章-46  trackbacks-0
          1.表格的顯示格式,在css中定義;

          css

          Property Default Valid Values Description Can be set using file/setProperty
           css.tr.even even any valid css class name css class automatically added to even rows             yes/yes
           css.tr.odd odd any valid css class name css class automatically added to odd rows             yes/yes
          css.th.sorted sorted any valid css class name css class automatically added to the header of sorted columns             yes/yes
          css.th.ascending order1 any valid css class name css class automatically added to the header of a column sorted is ascending order            yes/yes
          css.th.descending order2 any valid css class name css class automatically added to the header of a column sorted is descending order            yes/yes
          css.table none any valid css class name css class automatically added to the main table tag            yes/yes
          css.th.sortable none any valid css class name css class automatically added to any sortable column            yes/yes


           
          2.修改classes/org/displaytag/properties/TableTag.properties,使其符合自己的要求.
          basic.empty.showtable=false
          basic.show.header
          =true

          # page 
          | list
          sort.amount
          =page

          export.amount
          =list
          export.decorated
          =true

          paging.banner.group_size
          =8
          paging.banner.placement
          =top


          css.tr.even
          =even
          css.tr.odd
          =odd
          css.th.sorted
          =sorted
          css.th.ascending
          =order1
          css.th.descending
          =order2
          css.table
          =
          css.th.sortable
          =sortable

          # factory classes 
          for extensions
          factory.requestHelper
          =org.displaytag.util.DefaultRequestHelperFactory

          # locale provider (Jstl provider by 
          default)
          locale.provider
          =org.displaytag.localization.I18nJstlAdapter

          # locale.resolver (nothing by 
          default, simply use locale from request)
          #locale.resolver
          =

          export.types
          =csv excel xml pdf

          export.csv.
          class=org.displaytag.export.CsvView
          export.excel.
          class=org.displaytag.export.ExcelView
          export.xml.
          class=org.displaytag.export.XmlView
          export.pdf.
          class=org.displaytag.export.PdfView

          export.csv
          =true
          export.csv.label
          =<span class="export csv">CSV </span>
          export.csv.include_header
          =false
          export.csv.filename
          =

          export.excel
          =true
          export.excel.label
          =<span class="export excel">Excel </span>
          export.excel.include_header
          =true
          export.excel.filename
          =

          export.xml
          =true
          export.xml.label
          =<span class="export xml">XML </span>
          export.xml.filename
          =

          export.pdf
          =false
          export.pdf.label
          =<span class="export pdf">PDF </span>
          export.pdf.include_header
          =true
          export.pdf.filename
          =


          # messages

          basic.msg.empty_list
          =<center>對(duì)不起,沒(méi)有符合條件的記錄</center>
          basic.msg.empty_list_row
          =<tr class="empty"><td colspan="{0}">Nothing found to display.</td></tr>
          error.msg.invalid_page
          =invalid page

          export.banner
          =<div class="exportlinks">Export options: {0}</div>
          export.banner.sepchar
          = |

          paging.banner.item_name
          =記錄
          paging.banner.items_name
          =記錄

          paging.banner.no_items_found
          =<span class="pagebanner">沒(méi)有任何{0} .</span>
          paging.banner.one_item_found
          =<span class="pagebanner">搜索到1條{0} .</span>
          paging.banner.all_items_found
          =<span class="pagebanner">搜索到<b>{0}</b>{1}, 當(dāng)前顯示全部{2}.</span>
          paging.banner.some_items_found
          =<span class="pagebanner">搜索到<b>{0}</b>{1} , 當(dāng)前顯示<b>{2}</b> to <b>{3}</b>.</span>

          paging.banner.full
          =<span class="pagelinks">[<a href="{1}">首頁(yè)</a>/<a href="{2}">上一頁(yè)</a>{0} [<a href="{3}">下一頁(yè)</a>/<a href="{4}">末頁(yè)</a>]</span>
          paging.banner.first
          =<span class="pagelinks">[首頁(yè)/上一頁(yè)] {0} [<a href="{3}">下一頁(yè)</a>/<a href="{4}">末頁(yè)</a>]</span>
          paging.banner.last
          =<span class="pagelinks">[<a href="{1}">首頁(yè)</a>/<a href="{2}">上一頁(yè)</a>{0} [下一頁(yè)/末頁(yè)]</span>
          paging.banner.onepage
          =<span class="pagelinks">{0}</span>

          paging.banner.page.selected
          =<strong>{0}</strong>
          paging.banner.page.link
          =<a href="{1}" title="Go to page {0}">{0}</a>
          paging.banner.page.separator
          =,

          # unused
          save.excel.banner
          =<a href="{0}" rel="external">save ({1} bytes)</a>
          save.excel.filename
          =export.xls




          詳情http://displaytag.sourceforge.net/configuration.html
          3.如果TableTag.properties中的相關(guān)項(xiàng)包含中文則在web頁(yè)上會(huì)出現(xiàn)亂碼,解決方法:下載源碼
          修改 org.displaytag.properties.TableProperties.java ,把 

             
           private String getProperty(String key) 
              

                
          return this.properties.getProperty(key); 
              }
           


          改成 
             
          private String getProperty(String key) 
              

                  String s 
          = null
                  
          try 
                    s 
          = new String(this.properties.getProperty(key).getBytes("8859_1"), "GBK"); 
                  }
          catch(Exception e) 
                    s 
          = null
                  }
           
                
          return s; 
              }
           
          4.確保export正確的方法是在web.xml中配置filter:
          <filter> 
              
          <filter-name>ResponseOverrideFilter</filter-name> 
              
          <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class> 
          </filter> 
          <filter-mapping> 
              
          <filter-name>ResponseOverrideFilter</filter-name> 
              
          <url-pattern>*.jsp</url-pattern> 
          </filter-mapping> 
          詳傾參見(jiàn)http://displaytag.sourceforge.net/export.html
          慎用這個(gè)filter,尤其是使用tomcat做服務(wù)器的朋友,它會(huì)使本來(lái)就存在的亂碼問(wèn)題更加雜亂,除非改改源碼.
          5.在jstl中獲得數(shù)據(jù)的方法:
          <sql:query var="query" dataSource="${bookdev}"> 
            select 
          *  from ebook 
          </sql:query> 

          <display-el:table name="pageScope.query.rows" /> 

          用<display-el:table name="${query.rows}" />好像不行;
          6.要在外部引用數(shù)據(jù),必須在display:table中定義一個(gè)id

          <display-el:table name="pageScope.query.rows" id="item" > 
            
          <display-el:column property="title" title="題名" group="1" sortable="true" headerClass="sortable"/> 
            
          <display-el:column property="creator" title="作者" group="2" sortable="true" headerClass="sortable"/> 
            
          <display-el:column property="format" title="格式"/> 
            
          <display-el:column title="刪除"><a href="delete.jsp?id=${item.Id}" target="_blank">刪除</a></display-el:column> 
          </display-el:table> 

          7.問(wèn)題:如果檢索數(shù)據(jù)庫(kù)帶有中文的字段,在翻頁(yè)時(shí)就查不到記錄了?
            這個(gè)問(wèn)題著實(shí)把我嚇了一大條,因?yàn)楣こ恬R上就要完了,要是它出了問(wèn)題,那.....
           好在displaytag比較成熟,用的人比較多,早就有人提出這個(gè)問(wèn)題了,在網(wǎng)上查了一下,原來(lái)又是一個(gè)編碼的問(wèn)題:
          "DisplayTag的默認(rèn)的URL默認(rèn)為上一次的URL,如果上一次的URL包含中文的話,則會(huì)被進(jìn)行URLEncode,所以在翻頁(yè)的時(shí)候,又會(huì)把進(jìn)行了URLEncode后的數(shù)據(jù)再次進(jìn)行URLEncode,所以翻頁(yè)就沒(méi)有數(shù)據(jù),因?yàn)檫@部分功能被封裝在DisplayTag中"
          也提出了解決辦法:在Tomcat的server.xml的Connector部分添加URIEncoding="GBK",
          我試了,但是好像不管用,不知道是不是版本不同的緣故,我用的是jakarta-tomcat-5.0.27,應(yīng)該是比較新的.
          考慮到Tomcat5中對(duì)Post和Get請(qǐng)求不再采用相同的處理策略,
          我把查詢表單的form method 由原來(lái)的post改為get,翻頁(yè)就沒(méi)有問(wèn)題了,不過(guò)這個(gè)方法好像蹩腳了點(diǎn),只能暫時(shí)這樣了.
          在后來(lái)的實(shí)踐中我才發(fā)現(xiàn)原來(lái)是配置了filter的緣故(見(jiàn)4.確保export正確的方法是在web.xml中配置filter),這個(gè)filter打亂了正常的編碼.
          下面是我的一些測(cè)試: (配置了export的filter后)
          send.jsp:
          <form action="receive.jsp?cs=1" method="POST">
            <input name="key" type="text" value="中文" />
            <input name="sb" value="submit" type="submit"/>
          </form>
          receive.jsp:cs=${param.cs};key=${param.key}
          結(jié)果:cs=1,但key=????即使前面用了<%request.setCharacterEncoding("GBK"); %>也不行
          只有用<% String key = new String(request.getParameter("key").getBytes("ISO-8859-1"));out.println(key);%>或類似的編碼處理才能得到正確結(jié)果.
          將send.jsp的form method改為get
          結(jié)果:cs的值為null,key=中文
          8.相關(guān)資源:
          http://www.theserverside.com/news/thread.tss?thread_id=21861




          posted on 2005-06-07 15:46 似水流年 閱讀(2259) 評(píng)論(0)  編輯  收藏 所屬分類: JSP/Servlet
          主站蜘蛛池模板: 盐池县| 崇左市| 思南县| 柘荣县| 通道| 治县。| 清水县| 巴中市| 陕西省| 平阳县| 吉木萨尔县| 洪洞县| 卓尼县| 陆良县| 安溪县| 高淳县| 若羌县| 汝阳县| 左云县| 五指山市| 洪湖市| 黔东| 永安市| 昌宁县| 灵武市| 兴和县| 尉氏县| 巴东县| 渝中区| 化德县| 微山县| 旌德县| 漳平市| 怀集县| 昭苏县| 凭祥市| 商都县| 贡嘎县| 陆丰市| 左权县| 昭通市|