2008-12-20 73 views
0

我有一個JSP頁面接收事件對象的ArrayList,每個事件對象包含日期的ArrayList。我通過事件對象迭代下列要求:JSTL打印arrayList元素

我怎麼能遍歷每個事件對象的日期時間ArrayList和打印出每個事件的日期/時間?

+0

您似乎已經遺漏了您的問題的代碼。 – cletus 2008-12-20 16:24:24

回答

3

如果我理解你的問題,你基本上有ArrayList的ArrayList。 JSTL對於有效的「items」集合有一些相當古怪的規則。 JSTL 1.2 specification沒有足夠的回答,所以我去了源代碼。

的forEach可以遍歷:

字警告:在這種情況下使用迭代器和枚舉的是可能有問題的,因爲這樣做會修改自己的狀態,有沒有辦法將它們重置(通過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}或其他。

+0

至少對於jsp 2.0來說,這是不足以實現迭代的 – krosenvold 2008-12-20 17:03:33

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