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

标签 java spring jsp jstl

出于其他原因,我必须在 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/

相关文章:

java - 二叉搜索树的非递归底层方法

java - 使用 Spring @Async 和 ThreadPoolTask​​Scheduler with pool-size=1

security - Grails + Spring Security一次登录

spring - 使用spring jdbc模板查询参数列表

java - QueryDSL:从实体构建查询

java - 使用JSP有什么优点? (java服务器页面)

java - 在 thymeleaf 中使用迭代变量

java - 如何使用java验证电子邮件地址?

如果在 List 或 Map 中对数组进行注释,则 Java 8 TYPE_USE 注释不起作用

java - Java 中初始化的奇怪行为