<c:forEach> 计数没有递增

<c:forEach> count is not incrementing

我有一组名单,如下所示

[{"name": "test1"},
{"name": "test2"},
{"name": "test3"},
{"name": "test4"},
{"name": "test5"},
{"name": "test6"},
{"name": "test7"},
{"name": "test8"},
{"name": "test9"},
{"name": "test10"},
{"name": "test11"},
{"name": "test12"},
{"name": "test13"}]

我想要实现的是类似于 for 循环的东西,如下所示,但在 jstl 中,它在每次迭代中打印四个值

for(int i=0; i<items.size();i++)
{
    System.out.println(items[i].name);
    System.out.println(items[i++].name);
    System.out.println(items[i++].name);
    System.out.println(items[i++].name);
}

我的 jstl 代码如下所示,代码有效但增量在 <c:forEach>

中不起作用
<c:forEach var="value" items="${items}" varStatus="loopCounter">
    <div class="one">{value}</div>
    ${loopCounter+1}
    <div class="two">{value}</div>
    ${loopCounter+1}
    <div class="three">{value}</div>
    ${loopCounter+1}
    <div class="four">{value}</div>
</c:forEach>

谁能告诉我一些解决方案

我的预期输出是这样的

迭代一

<div class="one">test1</div>
<div class="two">test2</div>
<div class="three">test3</div>
<div class="four">test4</div>

迭代二

<div class="one">test5</div>
<div class="two">test6</div>
<div class="three">test7</div>
<div class="four">test8</div>

迭代三

<div class="one">test9</div>
<div class="two">test10</div>
<div class="three">test11</div>
<div class="four">test12</div>

迭代四

<div class="one">test13</div>

变量loopCounter(您的c:forEach 标记的varStatus)是一个包含多个属性的对象。其中之一是 index(本轮迭代的从零开始的索引)。您可以使用它来计算所需的 css class。

如果要在 JSP 中打印变量,请使用:

${value}

没有

{value}

这应该会给出您想要的输出:

<c:forEach var="value" items="${items}" varStatus="loopCounter">
    <c:set var="cssClass">
        <c:choose>
            <c:when test="(loopCounter.index % 4) eq 0">
                one
            </c:when>
            <c:when test="(loopCounter.index % 4) eq 1">
                two
            </c:when>
            <c:when test="(loopCounter.index % 4) eq 2">
                three
            </c:when>
            <c:otherwise>
                four
            </c:otherwise>
        </c:choose>
    </c:set>
    <div class="${cssClass}">${value}</div>
</c:forEach>