strust2标签

1,if/elseif/else标签

<s:set  value="19"/>

<s:if test="%{#age > 60}">
    老年人
</s:if>
<s:elseif test="%{#age > 35}">
    中年人
</s:elseif>
<s:elseif test="%{#age > 15}">
 青年人
</s:elseif>
<s:else>
    少年
</s:else>

输出:青年人

 2,iterator迭代List

<table border="1" width="200">
<s:iterator value="{'Spring2.0','J2EE','Ajax'}" id="name" status="st">
<tr>
   <td><s:property value="#st.count"/></td><td><s:property value="name"/></td>
</tr>
</s:iterator>
</table>

输出:

 1 Spring2.0
 2 J2EE
 3 Ajax

3,iterator迭代Map代码如下

<table border="1">
    <tr>
     <th>编号</th>
     <th>书名</th>
     <th>作者</th>
    </tr>
    <s:iterator value="#{'Spring 2.0':'李刚','Java':'张三','j2ee study':'李四'}" id="name" status="st">
     <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if> >
      <td><s:property value="#st.count"/></td>
      <td><s:property value="key"/></td>
      <td><s:property value="value"/></td>
     </tr>
    </s:iterator>
   </table>

4,append标签

append标签可以将多个集合对象拼接起来,组成一个新的集合。拼接后,从而允许通过一个iterator标签就可以完成对多个集合的迭代。

<s:append id="newList">
<s:param value="#{'Spring2.0':'李','J2EE':'李','Ajax':'李'}" />
<s:param value="#{'培训', '职业教育'}" />
</s:append>

<table border="1" width="240">
<s:iterator value="#newList" 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>

</tr>
</s:iterator>
</table>

输出:

 Spring2.0 李
 J2EE 李
 Ajax 李
 培训 
 职业教育 

5,generator标签

使用generator标签可以将指定的字符串按指定分隔符隔成多个子串,临时生成的多个子串可以使用iterator标签来进行迭代输出。临时生成的集合将在此标签内部有效,出了标签就消亡。该标签有几个有用的属性,介绍如下:

id:这是一个可选属性,指定id后,则生成的标签在pageContext属性中

count:这是一个可选属性,该属性指定生成集合中元素的总数,多余的丢弃

separator:这是一个必填属性,指定用于解析的分隔符

<table border="1" width="240">
<s:generator val="'Spring2.0,J2EE,Ajax'" separator=",">
<s:iterator status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
   <td><s:property/></td>
</tr>
</s:iterator>
</s:generator>
</table>

输出:

 1 Spring2.0
 2 J2EE
 3 Ajax
使用id属性
<table border="1" width="240">
<s:generator val="'Spring2.0,J2EE,Ajax'" separator="," count="1" >
<s:iterator status="st" id="name">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
 <td> <s:property value="#st.count"/></td>
   <td><s:property value="name"/></td>
</tr>
</s:iterator>
</s:generator>
</table>

输出:

 1  Spring2.0

 6,merge标签

merge标签同样用于将多个集合元素拼接成一个集合元素。它的用法和功能同append很相似,只是生成的元素内容的顺序不同。

<s:merge id="newList">
<s:param value="#{'Spring2.0':'李','J2EE':'李','Ajax':'李'}" />
<s:param value="#{'培训', '职业教育'}" />
</s:merge>

<table border="1" width="240">
<s:iterator value="#newList" 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>

</tr>
</s:iterator>
</table>

输出:

 Spring2.0 李
 培训 
 J2EE 李
 职业教育 
 Ajax 李

7,subset标签

subset标签用于取得集合的子集,该标签的底层通过org.apache.Struts2.util.Subset.IteratorFilter类提供实现。使用subset标签可以指定如下几个属性:

count:可选属性,指定子集中元素的个数,默认取得源集合的所有元素

source:可选属性,指定源集合,如果不指定,默认取得valueStack栈顶的集合,一般都会指定

start:可选属性,指定从源集合的第几个元素开始截取,,默认从第一个元素(即start=0)开始

decider:可选属性,由开发者自己决定是否选中该元素

<table border="1" width="200">
<s:subset source="{'Java','Spring2.0','J2EE','Ajax','WebWork'}" start="1" count="3">
<s:iterator status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
   <td><s:property/></td>
</tr>
</s:iterator>
</s:subset>
</table>

输出:

 Spring2.0
 J2EE
 Ajax

此外,Struts2还允许开发者决定截取标准,开发者只需要实现一个Decider类,实现SubsetIteratorFilter.Decider接口中的boolean decide(Object element)方法,如果该方法返回真,则表明该元素将被选入子集中。看如下代码:

JAVA代码如下:

package decider;

import org.apache.struts2.util.SubsetIteratorFilter;

public class MyDecider implements SubsetIteratorFilter.Decider {

 public boolean decide(Object element) throws Exception {
   String str = (String)element;
     return !str.equals("J2EE");
 }
}
这里要求过滤包含“J2EE”的元素,JSP页面代码如下:

<s:bean id="mydecider" name="decider.MyDecider"/>
<table border="1" width="200">
<s:subset source="{'Java','Spring2.0','J2EE','Ajax','WebWork'}" decider="#mydecider">
<s:iterator status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
   <td><s:property/></td>
</tr>
</s:iterator>
</s:subset>
</table>

输出:

 Java
 Spring2.0
 Ajax
 WebWork

8,Sort标签

sort标签用于对指定的集合元素进行排序,进行排序时,必须提供自己的排序规则,即实现自己的Comparator,需要实现java.util.Comparator接口。使用sort标签时可指定如下几个属性:

comparator:必填属性,指定排序的Comparator实例

source:可选属性,指定被排序的集合,如果不指定则对valueStack栈顶的集合进行排序

JAVA代码如下:

package comparator;

import java.util.Comparator;

public class MyComparator implements Comparator {
 public int compare(Object element1, Object element2) {
  return element1.toString().length() - element2.toString().length();
 }
}

上面的方法,如果返回一个大于0的数,则第一个元素大于第二个元素;返回0则表示两个元素相等,返回小于0的数,则第一个元素小于第二个元素。

JSP页面如下:

<s:bean id="mycomparator" name="comparator.MyComparator"/>
<table border="1" width="200">
<s:sort source="{'J2EE','Ajax','Spring2.0','Hibernate'}" comparator="#mycomparator">
<s:iterator status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
   <td><s:property/></td>
</tr>
</s:iterator>
</s:sort>
</table>

输出:

 J2EE
 Ajax
 Spring2.0
 Hibernate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值