1、官方網址:
http://www.displaytag.org/1.2/displaytag/tagreference.html
2、<display:column>介紹:
顧名思義,該標簽是用來顯示表格中的一列,它只能嵌套在<display:table>標簽中使用,顯示decorator處理后的結果,如果沒有指定decorator,則顯示property屬性指定的數據。
3、常用屬性列表:
| property | 主要是用來指明需要顯示的元素的屬性名,同時表格中的列名也就是property的值(沒有title屬性時),但是會以大寫字母開頭。 |
| title | 該屬性用來指定顯示列的標題。如果不指定該屬性,默認的使用property的名字做為該列的標題。 |
| style | 這個是正常表格中的td的style屬性,用來直接定義CSS樣式。 |
| class | 這個是正常表格中的td的class屬性,用來引用CSS。 |
| headerClass | 這個是該列的列名的class屬性,也就是th的class屬性,可以用來控制列標題樣式。 |
| autolink | autolink="true":作用是自能鏈接,可以將郵箱或者網址轉為超鏈接,而不是單純的文本顯示。轉化的結果為:<a href="mailto:xxx">xxx</a>或者<a href="xxx">xxx</a> 還有一點就是它只會將匹配到的郵箱或者網址變成超鏈接,其他的部分(如果有的話,一般是空格分隔的)還是正常的文本顯示。額,好吧最后一點,如果數據量大,這個屬性會有性能損失,因為它需要掃描bean值,來匹配網址和郵箱。。。我不關心性能。。。 |
| decorator | 指向自定義裝飾器的全路徑類名。是ColumnDecorator的子類或者DisplaytagColumnDecorator的子類。 |
| href | 生成動態鏈接,使用href屬性動態構造當前列的各行數據的超連接 |
| url | 生成動態鏈接,包含主機名和根路徑,不能跨域跳轉,也就是只能在項目內跳轉。 |
| paramId | 添加到超鏈接后的參數名,后台根據它來獲取參數值,只能定義一個參數。 |
| paramProperty | 參數值,只能是bean的屬性名,不能直接將參數設置為一個字符串常量。可以用隱藏常量列來達到賦值字符串常量的目的,但是本質還是屬性值。 |
| paramName | bean的名字,默認值null,一般就是指當前行所指向的bean對象。 |
| paramScope | bean的范圍,默認值null,當前bean。 |
| sortable | 默認值false,如果賦值"true":該列具有排序功能,點擊列名即可排序。 |
| defaultorder | 默認值ascending,descending。聲明默認排序是升序還是降序。 |
| group | group="整數":對數據進行分組,可以級聯分組,就像數據庫查詢一樣,不過沒有數據庫的好,因為必須是排序好的,才有級聯效果。否則很糟糕。 |
| total | 默認值是false,沒有統計功能,如果 total="true",就有統計功能,一般是和group一起使用,會對每個分組進行合計,最后總計。實際上更加復雜,<display:table>標簽必須有一個TotalTableDecorator,統計功能才有效果。就算沒有這個Decorator,還可以手動實現統計功能,因為total="true"還有另外一個效果,<display:table>有一個屬性varTotals,它的值是一個Map。key是列序號"column1","column2"...value則是對應每個列的統計結果,具有total="true"的列。所以可以用EL表達式來取到結果,但是有一個限制,這個varTotals變量只能在<display:foot>標簽中使用。 |
| media | 控制該列在某一類型文件中是否導出/顯示。合法值:html,xml,csv,excel。注意可以通過該屬性在網頁上不顯示該列,也就是隱藏列。media="csv xml"就表示不再html網頁上顯示該列,但是在csv和xml導出文件中還是有該列。 |
| nulls | 默認值nulls="false",如果該屬性為null,頁面上不會顯示null,而是為空,如果nulls="true",並且該屬性為null,則顯示null,主要用在測試上的時候。 |
| maxLength | 定義該屬性最大長度,用...代替過長部分 |
| maxWords | 定義該屬性最大字數,用...代替過長部分 |
| format | 格式化顯示bean屬性值,可以使用任意合法的java.text.MessageFormat模式,主要適用於時間和金錢的格式化: <display:column property="date" format="{0,date,dd-MM-yyyy}" /> <display:column property="money" format="{0,number,000,000,000.00} $" /> |
| comparator | 該列的比較器,指向自定義類的全路徑名,實現Comparator,默認值就是DefaultComparator。實際上應該用不到,一般列的值不是字符串就是數字,如果列的值還是一個對象,那么如何顯示這個對象呢,至少要實現該對象的toString方法。然后才是實現自己的Comparator比較器。 |
| escapeXml | 效果類似於jstl中的<c:out escapeXml="true|false" />,這個屬性大家不一定使用過,不過可以了解一下,<c:out>標簽中該屬性默認值是true,而<display:column>標簽默認值是false,當該屬性為true時,它會自動轉化待顯示的字符串中的特殊字符,比如html中的<,>,',",&,這些字符會轉成實體字符,<>等這樣的結果就是在網頁上原封不動地顯示了原字符串。相反如果該屬性值是false,它是不會做任何轉換的。這樣由瀏覽器顯示的時候,就有可能得到意想不到的結果。 |
| headerScope | 這個是正常表格中th的scope屬性 |
| scope | 這個是正常表格中td的scope屬性 |
| sortName | 根據哪個名稱進行排序 |
| sortProperty | 指的是根據哪個屬性進行排序 |
| titleKey | 顯示標題從資源文件讀取 |
| value | 顯示的值 |
4、補充說明:
(1)Href屬性和其關聯屬性:
使用href屬性動態構造當前列的各行數據的超連接。使用paramId來指定附在url字符串后面的參數名稱,而使用paramName或者paramProperty來指定與paramId相關聯的參數值。 如:
<display:column href="test.do" paramId="id" paramProperty="userId" >${curpage.Name}</display:column>
將會生成類似於下面的url形式:http://XXX/demo/test.do?id=1(假設該行的userId的值為1)
(2) Sortable屬性和headerClass屬性:
DisplayTag還提供了一個很有特色的特性,那就是可以針對某一列的數據進行排序,而這只需要指定sortable屬性為true,並指定其headerClass為sortable就可以了。如:
<display:column property="label" sortable="true" headerClass="sortable"></display:column>
這樣,就可以通過點擊該列的標題來排序該列的數據了。其中,sortable屬性接受boolean值為合法屬性值,而headerClass為string型的合法值。
