Struts2学习笔记(八)——Struts2 控制标签

控制标签

Append

用于将多个集合拼接为一个新的集合,类似于List的addAll函数

静态实现对已知List的合并

<s:append id=”newList”>

           <s:paramvalue=”{‘a1’,’a2’,’a3’}” />

           <s:param value=”{‘a4’,’a5’,’a3’}”/>

</s:append>

使用<s:append>和 <c:iterator>。也可以将多个Map拼接为一个新的Map,更可以将一个Map和一个List拼接起来,如:

<s:append id=”newList”>

           <s:paramvalue=”{‘a1’,’a2’,’a3’}” />

           <s:param value=”#{‘li’:’spring’,’wang’:’struts’}”/>

</s:append>

<table border="1" width="240">
<s:iterator value="#newList" status="st">
<tr <s:iftest="#st.odd">style="background-color:#bbbbbb"</s:if>>
   <td><s:property value="key"/></td>
   <td><s:property value="value"/></td>

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

Generator

         将指定字符串分割成多个子串,临时生成的多个子串可以使用Iterator进行迭代,类似于String的split函数,在jstl的function标签中有相同实现。

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

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

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

Merge

         用于将多个集合拼接成一个新的集合,与append用法类似,区别是拼接后集合的顺序不同,如 {a1,a2,a3}和{b1,b2,b3}使用append拼接后是{a1,a2,a3,b1,b2,b3}; 而使用merge拼接后是 {a1,b1,a2,b2,a3,b3}

Sort

        用于对集合进行排序,需要提供自己的Comparator,有用的属性是comparator:指定自定义的Comparator实例,需要实现java.util.Comparator接口; source, var:存放排序后结果。

<s:sort  source="{'J2EE','Ajax','Spring2.0'}"comparator="#request.mycomparator">
<s:iterator status="st">
  <tr> <s:iftest="#st.odd">style="background-color:#bbbbbb"</s:if>>
     <td><s:property/></td>
  </tr>
</s:iterator>

Subset

        用于截取集合的部分元素,形成新的集合  ,有用的属性是count  source  start  decider。

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

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

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

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

<%@ page contentType="text/html;charset=GBK" language="java"%>
<%@taglib prefix="s"uri="/struts-tags"%>
<html>
<head>
<title>使用s:subset标签截取集合元素</title>
</head>
<body>
<table border="1" width="200">
<s:subset source="{'Java','Spring2.0','J2EE','Ajax','WebWork'}"
start="1" count="3">
<s:iterator status="st">
<tr <s:iftest="#st.odd">style="background-color:#bbbbbb"</s:if>>
   <td><s:property/></td>
</tr>
</s:iterator>
</s:subset>
</table>
</body>
</html>


还可以自己决定选择标准,,使用步骤如下:

1.      实现SubsetIteratorFilter.Decider 接口 class MyDeciderimplements Decider

2.      在jsp中使用 <s:bean> 创建该类的对象 <s:bean id=”de” name=”lee.MyDecider” />

3.      对<s:subset decider=”#de”>

如下实例:

<%@ pagecontentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s"uri="/struts-tags"%>
<html>
<head>
<title>使用s:subset标签截取集合元素</title>
</head>
<body>
<s:bean id="mydecider" name="lee.MyDecider"/>

    <table border="1" width="200">
    <s:subset source="{'Java','Spring2.0','J2EE','Ajax','WebWork'}" decider="#mydecider">
    <s:iterator status="st">

        <tr <s:iftest="#st.odd">style="background-color:#bbbbbb"</s:if>>

               <td><s:property/></td>

        </tr>

    </s:iterator>
    </s:subset>
    </table>

</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值