java - JSTL 打印 arrayList 元素

标签 java jsp jstl

我有一个 JSP 页面,它接收事件对象的 ArrayList,每个事件对象都包含日期的 ArrayList。我正在使用以下内容迭代事件对象:

如何迭代每个事件对象的 dateTimes ArrayList 并打印出每个事件的日期/时间?

最佳答案

如果我理解你的问题,你本质上有一个 ArrayList 的 ArrayList。 JSTL 对于什么是有效的“项目”“集合”有一些相当奇怪的规则。 JSTL 1.2 specification 没有充分回答这个问题。所以我查看了源代码。

forEach 可以迭代:

  • 原生数组或 Object类型(注意:由于类型删除,这包括任何通用数组);
  • Collection或任何子类;
  • 任何 Iterator ;
  • Enumeration ;
  • 任何实现 Map 的内容;或
  • 逗号分隔值如 String 。这是已弃用的行为。

警告:在这种情况下使用迭代器和枚举可能会出现问题,因为这样做会修改它们的状态,并且无法重置它们(通过 JSTL)。

无论如何,代码很简单:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<c:forEach var="event" items="${events}">
  <c:forEach var="date" items="${event}">
    <fmt:formatDate value="${date}" type="both"
      timeStyle="long" dateStyle="long" />
  </c:forEach>
</c:forEach>

假设事件对象只是日期的集合。如果该集合是一个属性,则只需将 ${event} 替换为 ${event.dates} 或其他内容。

关于java - JSTL 打印 arrayList 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383449/

相关文章:

Java外部程序

jsp - 安装 JSTL 会导致 org.xml.sax.SAXParseException : Content is not allowed in prolog

javascript - 如何在 Spring 中使用 JSTL 在下拉列表中显示数据?

java - 如何在 Vista 中搜索文件(例如 Java 文件)?

java - 氧点。通过注解绘制类之间的链接

java - JPanel 忘记了它的位置

javascript - 向表格添加 + 号,显示更多行

javascript - 使用 AJAX 响应在 JSP 中填充下拉列表

javascript - 限制对 Web 应用程序的访问

java - Spring MVC 将多个列表从 Controller 传递到 jsp