2010-10-20 27 views
2

我正在嘗試爲此(forEach)標記編寫一個類。JSTL:無法實現標記的類<c:forEach>

這裏的類:

public class BookList implements Iterable<Book> 
{ 
public ArrayList<Book> book_list; 

public BookList() 
{ 
    book_list = new ArrayList<Book>(2); 

    book_list.add(new Book("BookTitle_01","book_01.html")); 
    book_list.add(new Book("BookTitle_02","book_02.html")); 
} 

@Override 
public Iterator<Book> iterator() { 
    return book_list.iterator(); 
} 
} 

Book類:JSP頁面的

public class Book { 
public String title; 
public String url; 

public Book(String new_title, String new_url) 
{ 
    title = new_title; 
    url = new_url; 
} 
} 

部分:

<jsp:useBean id="books" scope="session" class="vanya.BookList" /> 

<c:if test="${inputedFlag}"> 
      <ul> 
       <c:forEach var="book" items="${books}"> 
        <li> 
         <a href="${book.url}">${book.title}</a> 
        </li> 
       </c:forEach> 
      </ul> 
     </c:if> 

但它不工作... 什麼是錯的用我的代碼?

+0

你會得到什麼錯誤消息? – 2010-10-20 14:58:42

+0

其實,這個鏈接http://stackoverflow.com/questions/2978536/jstl-using-foreach-to-iterate-over-a-user-defined-class有更好的答案。 – 2011-08-31 06:26:23

回答

3

您的BookList類需要實現Collection以與c:forEach一起使用。

+0

謝謝!有用! :) – Ivan 2010-10-20 15:13:25

1

你有Book/BookList類的getter/setter嗎?

+0

否(上面的類實現)。但我試圖在Book類中實現getter和setter。它沒有幫助。 – Ivan 2010-10-20 15:06:51