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

来源:互联网 发布:安卓windows xp镜像img 编辑:程序博客网 时间:2024/05/22 04:14

控制标签

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>


原创粉丝点击