【问题标题】:Jsp: Using c:if not workingJsp:使用c:如果不工作
【发布时间】:2026-02-10 20:10:01
【问题描述】:

我想要一个表格,它将在一个 td 中打印前 10 个项目,在第二个 td 中打印接下来的 20 个项目。但是下面的代码并没有这样做。相反,它需要 item[0] 和 item[10] 等等,并将它们放在一个表中,但其他项目放在表之外。

<table><tr>    
<c:forEach var="item" items="${itemList}" varStatus="i">
<c:if test="${i.index % 10 == 0}">
  <td>
</c:if>
<a>${item}</a><br>
<c:if test="${i.index % 10 == 0}">
  </td>
</c:if>
</c:forEach>
</tr></table>

【问题讨论】:

    标签: jstl


    【解决方案1】:

    第一个和第二个测试都为真,结束&lt;/td&gt;与开始&lt;td&gt;同时放置。

    第二个c:if 应该使用 9 而不是 0。

    <c:if test="${i.index % 10 == 9}">
      </td>
    </c:if>
    

    【讨论】:

      【解决方案2】:

      您必须使用 i.index

      【讨论】:

        【解决方案3】:

        <table> <tr>
        <c:forEach var="item" items="${itemList}" varStatus="i"> <c:if test="${i.index < 10}"> <td> <a>${item}</a><br> </td> </c:if> <td> <a>${item}</a><br> </td> </c:forEach> </tr> </table>

        【讨论】:

        • 我试过这段代码,但是没有用。它只是将所有项目打印在一条直线上。我想要的是一个每列 10 行的表格。 forEach 循环往下走每一列,然后到下一列。