iterator

iterator用于迭代数组,集合,Map.在迭代的时候,我们可以指定数字型的循环:

<s:iterator begin="0" end="3" var="p">
    <tr>
        <td><input type="radio" name="number" value="<s:property value="#p"/>"></td>
        <td><s:textfield name="value" cssClass="InputStyle"></s:textfield></td>
    </tr>
</s:iterator>               

以begin开始,end结束,var是当前循环的序号(表次数,不表值)

当我们迭代集合时,又需要利用其中的下标时

<s:iterator value="choicesList" status="st">
    <s:if test="value == answer">
        <tr>
            <td><input type="radio" name="number" checked value="<s:property value="#st.index"/>"></td>
            <td><s:textfield name="value" cssClass="InputStyle"></s:textfield></td>
        </tr>
    </s:if>
    <s:else>
        <tr>
            <td><input type="radio" name="number" value="<s:property value="#st.index"/>"></td>
            <td><s:textfield name="value" cssClass="InputStyle"></s:textfield></td>
        </tr>
    </s:else>
</s:iterator>

当循环集合时,需要找到当前循环的序号时,则给iterator指定status属性,status有下列一些取值,及其用法:
1:#status.odd 是否奇数行
2:#status.count 当前行数
3:#status.index 当前行的序号,从0开始『#status.count=#status.index+1』
4:#status.first 是否第一行
5:#status.last 是否最后一行
6:#status.modules(int) 当前行数取模

此外iterator还有id属性,id是迭代出的元素的id,可以通过id访问到当前迭代出的元素。

<s:iterator value="{'q','w','e','r','t'}" id='number'>
     <s:property value='#number'/>-
</s:iterator>

显示结果:q- w- e- r- t-


mugbya
1.2k 声望41 粉丝

时间永远分岔,通往无数未来


引用和评论

0 条评论