1. 程式人生 > >display table 標籤用法 對分頁和匯出excel有幫助

display table 標籤用法 對分頁和匯出excel有幫助

在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-INFclasses下新建一個檔案displaytag.properties,仿照TableTag.properties中屬性的格式設定需要修改的屬性。
  TableTag.properties中的# messages中設定的是顯示在頁面上的提示資訊。預設是英文的,我們可以把它改為中文的。不過這裡只能使用unicode,就是說中文字元必須轉換為unicode碼,這個可以使用jdk自帶的native2ascii.exe進行轉換。