一、控制标签
(1) if else标签
<s:set name="person" value="29"></s:set>
<s:if test="#person<30">
青年人
</s:if>
<s:else>
不是青年人
</s:else>
(2) iterator标签 迭代器,用于迭代输出集合中的元素
<!-- 定义一个集合 -->
<s:set name="person" value="#{'张三':'26','李四':'25','王五':'27'}" />
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
</tr>
<s:iterator value="#person" status="st">
<tr
<s:if test="#st.odd">
style="background-color:#bbbbbb"
</s:if>>
<td><s:property value="key" /></td>
<td><s:property value="value" /></td>
</s:iterator>
</table>
(3) generator 分割字符串 可以指定count:分割字符集合的个数,var 分割后存储的集合(方法stackcontext中)
<!-- 定义一个集合 -->
<s:set name="person" value="'{'张三''26','李四''25','王五''27'}'" />
<s:generator separator="#" val="'a#person'" var="persons" ></s:generator>
<table border="1">
<s:iterator value="#persons" status="st">
<tr
<s:if test="#st.odd">
style="background-color:#bbbbbb"
</s:if>>
<td><s:property /></td><tr>
</s:iterator>
</table>
(4) subset 获得子集
<!-- 使用subset标签截取目标集合的4个元素,从第2个元素开始截取 -->
<s:subset source="{'疯狂Java讲义'
,'轻量级Java EE企业应用实战'
,'经典Java EE企业应用实战'
,'疯狂Ajax讲义'
,'疯狂iOS讲义'}"
start="1" count="4">
<!-- 使用iterator标签来迭代目标集合,因为没有指定value属性值,
故迭代ValueStack栈顶的集合 -->
<s:iterator status="st">
<!-- 根据当前迭代元素的索引是否为奇数决定是否使用CSS样式 -->
<tr <s:if test="#st.odd">
style="background-color:#bbbbbb"</s:if>>
<td><s:property/></td>
</tr>
</s:iterator>
</s:subset>
可以指定分割器,选择满足条件的元素填入子集
public class MyDecider implements Decider
{
@Override
public boolean decide(Object arg0) throws Exception
{
String str=arg0.toString();
return str.indexOf("s")>0;
}
}
<s:bean var="decider" name="com.songxu.filter.MyDecider"></s:bean>
<!-- 定义一个集合 -->
<s:subset decider="#decider" source="{'bas','bus','ad','cs','db'}" var="mySubset"></s:subset>
<table border="1">
<!-- 因为生成page范围内的对象,所有引用子集时应当使用attr.mySubset引用 -->
<s:iterator value="#attr.mySubset" status="st">
<tr
<s:if test="#st.odd">
style="background-color:#bbbbbb"
</s:if>>
<td><s:property /></td><tr>
</s:iterator></table>
(5) sort 排序标签
public class MyComparator implements Comparator<Object>
{
@Override
public int compare(Object o1, Object o2)
{
//根据字符串的长度比较大小
return o1.toString().length()-o2.toString().length();
}
}
<!-- 定义一个集合 -->
<s:sort comparator="#comparator" source="{'basa','buss','ads','cs','db'}" var="sort"></s:sort>
<table border="1">
<!-- 因为生成page范围内的对象,所有引用子集时应当使用attr.mySubset引用 -->
<s:iterator value="#attr.sort" status="st">
<tr
<s:if test="#st.odd">
style="background-color:#bbbbbb"
</s:if>>
<td><s:property /></td><tr>
</s:iterator></table>
版权声明:本文为博主原创文章,未经博主允许不得转载。