9

我正在使用 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 清晰。

4

2 回答 2

17

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

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

始终检查文档

如果您仍然需要自己的柜台

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

增量

<s:set var="counter" value="%{#counter+1}"/>
于 2013-03-26T16:08:47.453 回答
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

于 2018-10-25T17:24:23.210 回答