出于其他原因,我必须在 jsp 页面上执行 forEach 循环,而不是迭代集合。我需要显示集合的值,但由于内部大括号,我返回了语法错误..我必须先转义它吗?如何让它解析 i 的值,然后从集合中获取值?
<c:if test="${maxColumns >= 0}">
<c:forEach var="i" begin="0" end="${maxColumns}" step="1" varStatus ="status">
<td height="20"> ${columnNames[${i}].columnName</td>
</c:forEach>
</c:if>
感谢您的帮助。
最佳答案
您不能像那样嵌套 JSP EL 表达式,但也不必这么做——正确的表达式是:
${columnNames[i].columnName}
由于 forEach
标记,i
已经是 EL 作用域的一部分,并且应该像任何其他作用域变量一样进行计算,例如 columnNames
。这里只是一个集合索引。
虽然我很理解在 View 层中执行此类逻辑的需要,但在我看来,在 Java 中准备集合范围几乎总是一个更好的主意 - 它也更容易测试。
关于java - 如何在 JSP 页面中显示集合项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9524852/