如何在JSP页面中显示集合项

时间:2012-03-01 22:01:26

标签: java spring jsp jstl

由于其他原因,我必须在jsp页面上执行forEach循环,而不是迭代集合。我需要显示集合的值,但由于内部括号,我返回语法错误。我必须首先逃避它吗?如何让它解析i的值然后从colllection中获取值?

  <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>

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您不能像这样嵌套JSP EL表达式,但您不必 - 正确的表达式是:

${columnNames[i].columnName}
由于i标记,

forEach已经是EL范围的一部分,并且应该被评估为任何其他范围变量,例如columnNames。这里只是一个集合索引。

虽然我很同意在视图层中需要做这种逻辑,但IMO几乎总是用Java编写收集范围更好 - 它也更容易测试。