最流行強大的頁面標籤框架 display:table 使用

 

在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進行轉換。 
5、顯示部門數據 
表現開端五條數據:通過設訂length屬性 
<display:table name="test" length="5"> 
<display:column property="id" title="ID" /> 
<display:column property="email" /> 
<display:column property="status" /> 
</display:table> 
表現第三到第八條數據:通過設定offset和length屬性 
<display:table name="test" offset="3" length="5"> 
<display:column property="id" title="ID" /> 
<display:column property="email" /> 
<display:column property="status" /> 
</display:table> 
6 . 導出數據到其他格局(頁裏溢出filter??) 
在<display:table/>裏設訂export="true" 
正在<display:column/>裏設訂media="csv excel xml pdf" 決議當字段在導出到其他款式時被包沒有包括,沒有設定章皆包孕 
<display:setProperty name="export.csv" value="false" /> 
決議當類格局能不克不及正在頁裏中導出 
<display:table name="test" export="true" id="currentRowObject"> 
<display:column property="id" title="ID"/> 
<display:column property="email" /> 
<display:column property="status" /> 
<display:column property="longDescription" media="csv excel xml pdf" title="Not On HTML"/> 
<display:column media="csv excel" title="URL" property="url"/> 
<display:setProperty name="export.pdf" value="true" /> 
<display:setProperty name="export.csv" value="false" /> 
</display:table> 
發佈了29 篇原創文章 · 獲贊 14 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章