Struts2操作集合標簽匯總
Iterator標簽主要用于對集合進行掃描,這里的集合包括數組、List、Set以及Map對象。Iterator標簽包含如下3個屬性。
Value:可選,該屬性指定被迭代的集合。被迭代的集合通常使用OGNL表達式指定。若未指定value屬性,則使用ValueStack棧頂的集合。
Id:可選,表示集合里的當前元素
Status:可選,該屬性指定了集合的IteratorStatus對象,在迭代集合的每一個元素時都會有一個描述當前狀態的IteratorStatus對象被放到ValueStack棧頂。通過IteratorStatus對象可以獲取集合當前的各種狀態信息,如當前集合元素的索引等。
Append標簽用于將多個集合合并成一個新集合。使用append標簽時需要指定一個id屬性,該屬性指定一個新集合的名字。Append標簽不僅可以合并同類型的集合對象,還可以將map對象和list對象進行合并。如果將map對象和list對象進行合并,將生成一個新的map對象,list對象的元素將作為新map對象的key,而value為空。
<s:append id=”newList”>
<s:param value=”{‘one’,’two’,’three’,’four’}”/>
<s:param value=”{‘five’,’six’}”/>
</append>
Generator標簽用于將指定字符串按照指定分隔符轉換成多個臨時子串,并保存為一個集合對象。轉換后的集合對象可以用iterator標簽進行迭代輸出。使用generator標簽生成的集合被保存在ValueStack棧頂,當generator標簽結束后,該集合將被從ValueStack棧頂移走。Generator標簽有如下5個屬性。
Separator:必填,指定了用于分割字符串的分隔符。
Val:必填,指定了待分割的字符串。
Count:可選,指定了生成集合的最大長度。
Converter:可選,該屬性指定一個轉換器,通過該轉換器,可以將集合中的每一個字符串轉換成對象。
Id:可選,如果指定了該屬性,則generator標簽將生成的集合放在pagecontext屬性中。
Merge標簽用于將集合以交替方式合并為新集合,區別于append標簽的追加方式。使用merge標簽需要指定一個id屬性,表示新集合的名字。對于上面append標簽合并的兩個集合,若采用merge標簽,輸出結果為:one,five,two,six,three,four。
Subset標簽用于獲取集合的子集,該標簽有如下幾個屬性。
Count:可選,指定了子集元素的個數。如果未指定該屬性,則默認獲取集合的所有元素。
Source:可選,指定源集合,如果未指定該屬性,則默認使用ValueStack棧頂的集合作為源集合。
Start:可選,該屬性指定從源集合第幾個元素開始取子集,默認為0。
Decider:可選,該屬性指定了一個自定義的子集規則對象實例。該規則類必須實現SubsetIteratorFilter.Decider接口。可以使用bean標簽創建實現Decider接口的實例,賦給decider屬性。
Sort標簽用于對集合進行排序,但sort標簽并未提供自己的排序規則,因此,使用sort標簽對集合元素進行排序時,必須由開發人員提供排序規則。排序規則實際上是實現java.util.Comparator接口的類。Sort標簽有如下兩個屬性。
Comparator:必填,指定排序規則類的對象實例。
Source:可選,指定被排序的集合。如果未指定,則對ValueStack棧頂的集合進行排序。