首页 > 代码库 > s:iterator的用法

s:iterator的用法

truts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简单的demo:
s:iterator 标签有3个属性:
   value:被迭代的集合
   id   :指定集合里面的元素的id
    status迭代元素的索引

1:jsp页面定义元素写法 数组或list


<s:iterator value="http://www.mamicode.com/{‘1‘,‘2‘,‘3‘,‘4‘,‘5‘}"id=‘number‘>
   <s:property value=http://www.mamicode.com/‘number‘/>A
</s:iterator>
打印结果为: 1A2A3A4A5A

2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法

<s:iterator 中的status 使用方法

1:#status.odd 当前元素索引是否奇数行

2:#status.even 当前元素索引是否偶数

3:#status.count 当前迭代了几个元素
4:#status.index当前元素索引,从0开始『#status.count=#status.index+1』

5:#status.first 当前是否第一个元素
6:#status.last 当前是否最后一个元素
7:#status.modules(int)当前行数取模   

 

<s:iterator value="http://www.mamicode.com/{‘a‘,‘b‘,‘c‘}"id=‘char‘ status=‘st‘>
   <s:if test="#st.Even">
       现在的索引是奇数为:<s:propertyvalue=http://www.mamicode.com/‘#st.index‘/>
   </s:if>
   当前元素值:<s:propertyvalue=http://www.mamicode.com/‘char‘/>
</s:iterator>
3:遍历map
value可以直接定义为:

value="http://www.mamicode.com/#{"1":"a","2":"b"}"
每个元素以都好隔开。元素之间的key和value 冒号隔开
value也可以是数据栈里面的java.util.Map对象
遍历写法如下:

<s:iterator value="http://www.mamicode.com/map" id="id"status="st">
    key : <s:property value=http://www.mamicode.com/‘key‘/>
    value:<s:propertyvlaue=‘value‘/>
</s:iterator>
当然key 和value 都可以使java 的 Object

3:遍历数据栈.简单的List类,
List<Attr>
class Attr{String attrName;String getAttrName(){return"123";}}

<s:iterator value="http://www.mamicode.com/label"id="id">
   <s:property value="http://www.mamicode.com/#id.attrName"/>
</s:iterator>
当然value 还可以写成 value="http://www.mamicode.com/%{label}" label可以有.操作
label的属性List 可以写成value="http://www.mamicode.com/%{label.list}"相当于:getLabel().getList();

4:遍历2个list;
List<AttrName> attrN{color,size,style}
List<AttrValue> attrV{red,20,gay}
这2个list的元素是一一对应的,一个attrN对应一个attrV

<s:iterator value="http://www.mamicode.com/%{attrN }"id="id"  status="status">
index    is :<s:propertyvalue=http://www.mamicode.com/‘status.index‘/>
attrName is : <s:propertyvalue=http://www.mamicode.com/‘id‘/> or attrName is : <s:propertyvalue=http://www.mamicode.com/‘%{attrV[#status.index]}‘/>
</s:iterator>

s:iterator的用法