Java Struts2增加上一组<;s:set/>;价值

Java Struts2增加上一组<;s:set/>;价值,java,jsp,struts2,jsp-tags,Java,Jsp,Struts2,Jsp Tags,我正在使用Struts2处理JSP,我必须迭代两个列表,并更改每个打印的的背景代码 我的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 ||

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

我的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>

…tds

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

您不需要创建引用变量,只需在迭代器中使用
#I.index
#I.count
。它已经由迭代器标记本身递增

请注意,“计数”是基于1的,“索引”是基于0的

总是要检查一下房间

如果你还需要自己的柜台

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

增量

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

您可以使用这个简单的方法来完成这个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需要一个单独的计数器,因为它需要基于内循环,并且在外循环上升时不重置。我不能使用迭代器的基本计数器,如果你检查我的代码,你会发现外循环和内循环都不会给我一个从奇数到偶数交替的正确计数器,为了设置背景色(trclass变量);在任何情况下,它是否以0或1开头都无关紧要。。。。在发布我的问题之前,我尝试了您的解决方案(),但它通过翻译JSP页面给了我一个错误。明天我会再试一次…为了检查奇数或偶数,你可以使用
j.even
j.odd
这是布尔值。最后一句话应该有用,不是吗?就像一个符咒,用
来显示它。工作,但如果我把范围从第一个定义删除。除了罗马的答案,考虑使用三元来缩短类决策逻辑,你是什么意思三元?