【问题标题】:Converting a for scriptlet based for loop to JSTL c:forEach loop将基于 for 循环的 for scriptlet 转换为 JSTL c:forEach 循环
【发布时间】:2014-01-08 20:50:01
【问题描述】:

我正在尝试将基于 for 循环的 scriptlet 转换为 JSTL c:forEach 循环,但结果在 html 表中变得混乱。

基于脚本的 For 循环:

 for (int i = 1; i < extraTDs; i++) {
     %><%= openCloseTD%><%
 }

使用的 Jstl for 循环:

<c:forEach  var="i" begin="1" end="${extraTDs}">
    ${openCloseTD}
</c:forEach>

请指导。

【问题讨论】:

  • 定义“搞砸了”。示例输入、示例输出、预期输出。

标签: jsp jstl


【解决方案1】:

c:foreach 中的结束索引包含(参见JSTL documentation)。 JSTL 代码比基于 scriptlet 的代码多进行一次迭代。

要获得相同的行为,您应该使用:

<c:forEach  var="i" begin="1" end="${extraTDs - 1}">
    ${openCloseTD}
</c:forEach>

【讨论】: