• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Shuffy

            不斷的學(xué)習(xí),不斷的思考,才能不斷的進(jìn)步.Let's do better together!
            posts - 102, comments - 43, trackbacks - 0, articles - 19

            DisplayTag應(yīng)用實(shí)踐

            Posted on 2008-11-30 15:47 Shuffy 閱讀(4911) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Java
            [摘自]http://www.blogjava.net/huhu/archive/2005/06/07/5669.html
            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)求不再采用相同的處理策略,
            我把查詢(xún)表單的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);%>或類(lèi)似的編碼處理才能得到正確結(jié)果.
            將send.jsp的form method改為get
            結(jié)果:cs的值為null,key=中文
            8.相關(guān)資源:
            http://www.theserverside.com/news/thread.tss?thread_id=21861

            久久精品免费观看| 亚洲综合精品香蕉久久网97| 欧美日韩中文字幕久久久不卡| 久久精品国产亚洲Aⅴ蜜臀色欲| 人人狠狠综合久久亚洲| 久久精品无码一区二区无码| 国产AV影片久久久久久| 精品综合久久久久久97| 久久福利青草精品资源站| 一级a性色生活片久久无| 狠狠色丁香久久综合婷婷| 久久久WWW成人免费毛片| 精品熟女少妇a∨免费久久| 中文字幕精品久久久久人妻| 精品水蜜桃久久久久久久| 蜜臀久久99精品久久久久久小说| 国产2021久久精品| 狠狠色丁香婷婷综合久久来| 久久婷婷国产剧情内射白浆| 亚洲&#228;v永久无码精品天堂久久 | 久久综合丁香激情久久| 精品国产青草久久久久福利| 伊人热人久久中文字幕| 久久久久亚洲精品天堂| 久久久久久久久久久精品尤物| 99热成人精品免费久久| 女人香蕉久久**毛片精品| 色偷偷久久一区二区三区| 亚洲国产精品久久久天堂 | 国产精品久久久亚洲| 久久99热这里只有精品国产| 国产精品亚洲综合久久 | 国产精品久久久天天影视| 无码精品久久久天天影视| 国产精品久久久久久五月尺| 欧美亚洲另类久久综合婷婷| 九九久久精品国产| 日韩久久无码免费毛片软件 | 久久国产成人| 亚洲国产成人久久一区WWW| 久久伊人精品一区二区三区|