<s:iftest="#age==23"> 23</s:if><s:elseiftest="#age==21"> 21</s:elseif><s:else> 都不等</s:else>
iterator标签:
用于对集合进行迭代,这里集合包含List、Set和数组,也可对Map类型的对象进行迭代输出。Value、id、Status三个属性都是可选属性,如果没有指定value属性,则使用ValueStack栈顶的集合。
例:
<s:iteratorvar="u"value="users"status="sts">
<s:propertyvalue="#sts"/>
<s:propertyvalue="#u"/><br/>
</s:iterator>
如果为<s:iterator/>标签指定status属性,即每次迭代时都会有一个IteratorStatus实例,该实例的方法包含如下几个:
IntgetCount():返回当前迭代了几个元素;
IntgetIndex():返回当前元素的索引;
BooleanisEven():当前元素的索引是否是偶数;
BooleanisFirst():当前元素是否是第一个元素;
BooleanisLast():当前元素是否是最后一个元素;
BooleanisOdd():当前元素的索引是否是奇数;
append标签:
用于将多个集合拼接起来,组成一个新的集合,通过阵中的拼接,从而允许通过一个<s:iterator…./>标签就完成对多个集合的迭代。
merge标签的用法看起来很像append标签,也是用于将多个集合拼接成一个集合但是采用的拼接方式与append不同,append是以集合位顺序的拼接,merge是以元素位顺序拼接;
generator标签:指定字符串按指定分隔符分隔成多个子串,临时生成多个子串可以使用iterator标签来迭代输出。可以理解我generator将一个字符串转化成一个集合,在该标签的标签体内,整个临时生成的集合将位于Valuestack的顶端,但一旦该标签结束,该集合将被移除Valuestack。
属性有count:指定生成集合中元素的总数,separator:指定用于解析字符串的分隔符;val:指定被解析的字符串;converter:制定一个转化器,该转化器负责将集合中的每个字符串转化成对象;id:可选属性,制定了该属性,则将生成的集合放在pageContext属性中;
Subset标签:用于取得集合的子集,该标签的底层通过org.apache.Struts2.util.Subset.IteratorFilter类提供实现。属性有:
count:指定生成集合中元素的总数,如果不指定该属性,默认取得源集合的全部元素。还有source,start,decider属性;
subset标签生成的子集放在ValueStack的栈顶,如果该标签结束后,该标签生成的子集将被移除出ValueStack栈。
Sort标签指定集合元素进行排序,进行排序是=时,必须提供自己的排序规则,即使实现自己的Comparator,自己的Comparator需要实现java.util.Comparator接口。属性有:
Comparator:该属性指定进行排序的Comparator实例。source:该属性指定排序的集合。如果不指定该属性,则对ValueStack栈顶的集合进行排序。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-31926-3.html
请教授下课吧
未从官方渠道购买怎么能说我们小米是不合格的呢
几艘渔船就把问题解决了
看待问题要从全局出发