Struts2操作集合标签汇总

jopen 10年前

Iterator标签主要用于对集合进行扫描,这里的集合包括数组、ListSet以及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标签,输出结果为:onefivetwosixthreefour

 

Subset标签用于获取集合的子集,该标签有如下几个属性。

Count:可选,指定了子集元素的个数。如果未指定该属性,则默认获取集合的所有元素。

Source:可选,指定源集合,如果未指定该属性,则默认使用ValueStack栈顶的集合作为源集合。

Start:可选,该属性指定从源集合第几个元素开始取子集,默认为0

Decider:可选,该属性指定了一个自定义的子集规则对象实例。该规则类必须实现SubsetIteratorFilter.Decider接口。可以使用bean标签创建实现Decider接口的实例,赋给decider属性。

 

Sort标签用于对集合进行排序,但sort标签并未提供自己的排序规则,因此,使用sort标签对集合元素进行排序时,必须由开发人员提供排序规则。排序规则实际上是实现java.util.Comparator接口的类。Sort标签有如下两个属性。

Comparator:必填,指定排序规则类的对象实例。

Source:可选,指定被排序的集合。如果未指定,则对ValueStack栈顶的集合进行排序。