JSTL: невозможно реализовать класс для тега - PullRequest
2 голосов
/ 20 октября 2010

Я пытаюсь написать класс для этого (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();
}
}

Класс книги:

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

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

частьстраницы JSP:

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

Но это не работает ... Что не так с моим кодом?

Ответы [ 2 ]

3 голосов
/ 20 октября 2010

Ваш класс BookList должен реализовывать Collection для использования с c: forEach.

1 голос
/ 20 октября 2010

Есть ли у вас метод получения / установки для вашего класса Book / BookList?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...