Struts2递增前一组<s:set> value </s:set>

时间:2013-03-26 15:52:52

标签: java jsp struts2 jsp-tags

我正在使用Struts2处理JSP,我必须迭代两个列表,并更改每个<tr/>打印的背景代码。

我的JSP代码段

<s:set var="counter" value="0" scope="page" />
<s:iterator value="listaContoCapitale" status="i">
    <s:iterator value="utilizzi" status="j">

    <s:if test="#counter == 0 || #counter % 2 == 0">
        <s:set var="trclass" value="'rigaSfondo1'" scope="page" />
    </s:if>
    <s:else>
        <s:set var="trclass" value="''" scope="page" />
    </s:else> 
    <tr class="${trclass}">
        ....tds
    </tr>
    </s:iterator>
    <s:set var="counter" value="here i have to change its value (increment it by1)" />
</s:iterator>

我需要在内循环的每一步增加我的计数器。有没有办法通过简单的struts标签增加我的计数器值?我知道我可以使用Java scriptlet,但我宁愿保持JSP清晰。

2 个答案:

答案 0 :(得分:15)

您不需要在迭代器中使用#i.index#i.count来创建引用变量。它已经被迭代器标记本身增加了。

  

请注意,“count”是从1开始的,“index”是从0开始的。

始终查看docs

如果您仍需要自己的计数器

<s:set var="counter" value="0"/>

增量

<s:set var="counter" value="%{#counter+1}"/>

答案 1 :(得分:0)

您可以使用这种简单的方法来实现struts2增量

<s:set var="count" value="1"/>
<s:iterator value="yourlisthere">
<div><s:property value="#count" /><s:property/></div>
<s:set var="counter" value="%{#count+1}"/>
<s:set var="count" value="%{#counter}"/>
</s:iterator>

jsp struts2