Struts2中s:iterator标签的使用详解
2013-08-16 19:02
337 查看
使用iterator遍历一个值。一个可迭代的值可以是java.util.Collection,java.util.Iterator中的任何一个。
参数
例子
下面的示例检索当前对象的值栈getDays()方法的值,并用它来遍历。<s:property/>标签打印出迭代器的当前值。
原文地址:http://struts.apache.org/release/2.3.x/docs/iterator.html
参数
Name | Required | Default | Evaluated | Type | Description |
---|---|---|---|---|---|
begin | false | 0 | false | Integer | 若指定,那么迭代器将从该索引开始 |
end | false | 该'values' List或array的大小, 或若'step'为负则为0 | false | Integer | 若指定,那么迭代器将到该索引结束(含该索引) |
id | false | false | String | 已过期。用'var'取代 | |
status | false | false | false | Boolean | 若指定,那么在每次迭代时,迭代状态的实例将被压入堆栈 |
step | false | 1 | false | Integer | 若指定,在每次迭代时,迭代索引将加上此值。它可以是一个负值,在这种情况下,'begin'必须是大于'end' |
value | false | false | String | 可迭代源对象进行遍历,另外对象本身将进入一个新创建的列表 | |
var | false | false | String | 名字用于将引用的值推入值栈 |
下面的示例检索当前对象的值栈getDays()方法的值,并用它来遍历。<s:property/>标签打印出迭代器的当前值。
<s:iterator value="days"> <p>day is: <s:property/></p> </s:iterator>下面的示例使用一个Bean标签,并将其放置到ActionContext中。 iterator标签将从ActionContext中检索该对象,然后同上调用其getDays()方法。status属性也可以用来创建一个IteratorStatus对象,该对象在这个例子中,odd()方法被用来交替行颜色:
<s:bean name="org.apache.struts2.example.IteratorExample" var="it"> <s:param name="day" value="'foo'"/> <s:param name="day" value="'bar'"/> </s:bean> <p/> <table border="0" cellspacing="0" cellpadding="1"> <tr> <th>Days of the week</th> </tr> <p/> <s:iterator value="#it.days" status="rowstatus"> <tr> <s:if test="#rowstatus.odd == true"> <td style="background: grey"><s:property/></td> </s:if> <s:else> <td><s:property/></td> </s:else> </tr> </s:iterator> </table>下一个例子将进一步证明使用status属性,从actioin类通过OGNL使用DAO,遍历组和他们的用户(在安全环境)。last()方法,表示如果当前对象是在迭代过程中的最后一个可用的,如果不是,我们需要使用一个逗号分隔的用户:
<s:iterator value="groupDao.groups" status="groupStatus"> <tr class="<s:if test="#groupStatus.odd == true ">odd</s:if><s:else>even</s:else>"> <td><s:property value="name" /></td> <td><s:property value="description" /></td> <td> <s:iterator value="users" status="userStatus"> <s:property value="fullName" /><s:if test="!#userStatus.last">,</s:if> </s:iterator> </td> </tr> </s:iterator>下一个例子遍历一个action集合,每个迭代值传递到另一个action中。这里的诀窍在于使用'[0]'运算符。它采用当前迭代器值,并把它传递到编辑操作。使用'[0]'运算符具有相同的效果,使用<s:property/>。 (然而后者,内部参数标签不运行)。
<s:action name="entries" var="entries"/> <s:iterator value="#entries.entries" > <s:property value="name" /> <s:property /> <s:push value="..."> <s:action name="edit" var="edit" > <s:param name="entry" value="[0]" /> </s:action> </push> </s:iterator>一个迭代5次的循环
<s:iterator var="counter" begin="1" end="5" > <!-- current iteration value (1, ... 5) --> <s:property value="top" /> </s:iterator>另一种方式来创建一个简单的循环,类似于JSTL的<c:forEach begin="..." end="..." ...>是使用一些的OGNL魔力,它提供了一些覆盖魔力使0-N循环实现。这个例子也循环五次。
<s:iterator status="stat" value="(5).{ #this }" > <s:property value="#stat.count" /> <!-- Note that "count" is 1-based, "index" is 0-based. --> </s:iterator>一个迭代部分列表的循环
<s:iterator value="{1,2,3,4,5}" begin="2" end="4" > <!-- current iteration value (2,3,4) --> <s:property value="top" /> </s:iterator>本文粗略翻译了Struts官网上的s:iterator标签,看起来“和谐”些,不妥之处还请指正~
原文地址:http://struts.apache.org/release/2.3.x/docs/iterator.html
相关文章推荐
- struts2中s:iterator 标签的使用详解
- struts2中s:iterator 标签的使用详解
- struts2中s:iterator 标签的使用详解 及 OGNL用法 (转载)
- struts2中s:iterator 标签的使用详解 及 OGNL用法
- struts2中s:iterator 标签的使用详解 及 OGNL用法
- struts2中s:iterator 标签的使用详解 及 OGNL用法
- struts2中s:iterator 标签的使用详解
- struts2中s:iterator 标签的使用详解
- struts2中s:iterator 标签的使用详解 及 OGNL用法
- .struts2中s:iterator 标签的使用详解 及 OGNL用法
- Struts2 OGNL表达式的iterator标签使用详解
- struts2中s:iterator 标签的使用详解
- struts2 标签的使用之二 s:iterator
- DWZ SSH2 菜单树--使用Struts2 标签(iterator/set/if 组合使用)
- struts2的s:iterator 标签 详解
- struts2的s:iterator 标签 详解
- struts2的s:iterator 标签 详解
- struts2的s:iterator 标签 详解
- struts2中iterator标签的使用
- struts2中的iterator标签的使用