Studying Java......

          統計

          留言簿(1)

          積分與排名

          JavaServerFaces

          Mail Link

          Open Source

          友情鏈接

          收藏的鏈接

          閱讀排行榜

          評論排行榜

          Display TagLib

              用了一段時間的Display Tag,覺得非常好用,可發現好像使用這個東東的人挺少的,那偶也來寫篇文章。
              Display Tag Lib是一個標簽庫,用來處理jsp網頁上的Table,功能非常強,可以對的Table進行分頁、數據導出、分組、對列排序等等,反正我在做項目時需要的功能它都給我提供了,而且使用起來非常的方便。能夠大大減少代碼量。
              介個是Display Tag的官方網站http://displaytag.sourceforge.net。

              首先當然是要下載它的jar包了,這里可以下載到最新的版本。將jar包放到WEB-INF的lib文件夾下。另外還需要兩個輔助包:apache的commons-lang和standard包,更多的輔助包可以在這里下載

              在web.xml下添加一個filter
              <filter>
                  <filter-name>exportFilter</filter-name>
                  <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
              </filter>

              在jsp頁面做一個引用:
          <%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>

              首先我們定義一個list
          <%
           List test = new ArrayList( 6 );
           test.add( "Test String 1" );
           test.add( "Test String 2" );
           test.add( "Test String 3" );
           test.add( "Test String 4" );
           test.add( "Test String 5" );
           test.add( "Test String 6" );
           request.setAttribute( "test", test );
          %>

              當我們想在jsp頁面上顯示這個list時,我們只需要寫一句話
              <display:table name="test" />
              display tag會自動生成一個table

              如果list是從控制層拋出來的,name可使用EL表達式表示
              <display:table name="${test}" />

              這是最簡單的display tag的使用,我們可以給它加上樣式等,也可以定義顯示的列,下面的table顯示復雜一些
          <display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
            <display:column property="id" title="ID" class="idcol"/>
            <display:column property="name" />
            <display:column property="email" />
            <display:column property="description" title="Comments"/>
          </display:table>

              如果想要給它加個鏈接也很簡單,下面的代碼給name加了連接,并附帶id參數,email也自動連接到mailto:XXX
          <display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
            <display:column property="id" title="ID" class="idcol"/>
            <display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/>
            <display:column property="email" autolink="true"/>
            <display:column property="description" title="Comments"/>
          </display:table>

          下面介紹幾個Display最常用的功能,更多功能請參考http://www.displaytag.org/index.jsp
          1. 分頁
              如果想對代碼分頁,只需在display:table標簽中添加一項pagesize="每頁顯示行數",如
          <display:table name="test" pagesize="10"/>

          2. 對列排序
              display tag可對列進行排序,就是點擊列名,對該列的數據進行排序。你只需對想要排序的列添加 sort="true" 就OK,如下面的代碼可對前三列進行排序。在display:table中添加defaultsort="列數",可默認對指定的列排序。
          <display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1">
            <display:column property="id" title="ID" class="idcol" sort="true"/>
            <display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/>
            <display:column property="email" autolink="true" sort="true"/>
            <display:column property="description" title="Comments"/>
          </display:table>
             如果table有分頁,Display Tag默認只對當前頁進行排序,如果想對整個list排序,可以在display:table之間添加一段代碼:
          <display:setProperty name="sort.amount" value="list"/>

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

          4. Display Tag的屬性設置
              前面所說的display:setProperty 是一種改變Display Tag屬性的方法,但是在每個jsp中都要寫太麻煩了。
              Display Tag中設置了很多默認的屬性,它有一個專門的屬性文件,是在它的jar包中的displaytag/properties/TableTag.properties
              想要改變它的默認屬性,我們可以在WEB-INF\classes下新建一個文件displaytag.properties,仿照TableTag.properties中屬性的格式設置需要修改的屬性。
              TableTag.properties中的# messages中設置的是顯示在頁面上的提示信息。默認是英文的,我們可以把它改為中文的。不過這里只能使用unicode,就是說中文字符必須轉換為unicode碼,這個可以使用jdk自帶的native2ascii.exe進行轉換。


          原文參見:http://blog.csdn.net/clearwater21cn/archive/2005/02/21/296316.aspx

          posted on 2005-11-10 17:52 Terence 閱讀(1006) 評論(3)  編輯  收藏

          評論

          # re: Display TagLib 2006-02-17 18:00 jjs

          我看了,但我照上面做了一下,但出現這樣的錯誤
          javax.servlet.ServletException:
          You appear to have an INCOMPATIBLE VERSION of the commons-lang library.
          Displaytag requires version 2 of this library, and you appear to have a prior version in
          your classpath. You must remove this prior version and ensure that only version 2 is in
          your classpath.
          If commons-lang-x.jar is in your classpath, be sure to remove it.
          Be sure to delete all cached or temporary jar files from your application server; Tomcat
          users should be sure to also check the CATALINA_HOME/shared folder; you may need to
          restart the server.
          commons-lang-2.jar is available in the displaytag distribution, or from the commons-lang
          website at http://jakarta.apache.org/commons/lang

          請問這是怎么回事  回復  更多評論   

          # re: Display TagLib 2006-06-16 22:39 經濟界

          我們公司也在用,將他包了起來,用起來更方便了  回復  更多評論   

          # re: Display TagLib 2006-10-20 10:48 nbaloveyao

          都是從網上拷的~沒有一點自己的看法~暈~  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 夏邑县| 昔阳县| 怀来县| 淮阳县| 栾城县| 苏尼特左旗| 晋州市| 临汾市| 玉屏| 阳原县| 白朗县| 德庆县| 南城县| 额济纳旗| 昌江| 通城县| 山东| 光泽县| 南召县| 通榆县| 蓬溪县| 新营市| 宁安市| 惠来县| 宜兰市| 阿克陶县| 中西区| 芷江| 凤冈县| 册亨县| 津市市| 沙坪坝区| 洪雅县| 湖南省| 湛江市| 锡林郭勒盟| 拜城县| 平远县| 乐清市| 贺兰县| 吉安市|