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栈顶的集合进行排序。
来源:oschina
链接:https://my.oschina.net/u/942785/blog/187442