Перебор элементов ArrayList с помощью JSTL forEach

У меня проблема с запуском элементов ArrayList и отображением их в файле JSP.

Вот мой боб:

public class UsersList {
    private ArrayList<UserDetails> users = new ArrayList<UserDetails>();

    public ArrayList getUsers(  ){
        return users;
    }

    public void setUsers(ArrayList<UserDetails> users){
        this.users = users;
    }
}

users содержит UserDetails, который является просто классом с 3 строковыми свойствами: электронная почта, имя пользователя, пароль

Теперь я пытаюсь отобразить детали в таблице.. сначала в index.jsp у меня есть эти команды:

            UsersList bean = new UsersList();
            bean.setUsers(db.getUsersList()); // getting all user deatils from database into the list
            session.setAttribute("bean", bean);

            RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/adminPage.jsp");
            dispatcher.forward(request, response);

И теперь на adminPage.jsp, когда я должен отобразить таблицу, содержащую информацию о пользователях, она ничего не отображает. Вот код:

<c:forEach var="current" items="${bean.users}" >
<tr>
    <td>${current.email}</td>
    <td>${current.username}</td>
    <td><input type="checkbox" name="delete" value="${current.email}"</td>
</tr>
 </c:forEach>

Есть идеи, в чем здесь проблема? Благодарю.

2 ответа

Решение

Проверьте, указывает ли ваш префикс "c" на правую библиотеку тегов.

Так должно быть

"Http://java.sun.com/jsp/jstl/core"

Если это не работает, проверьте, есть ли ошибка в логике заполнения данных.

Поскольку вы добавляете объект в сессию, вам нужно получить к нему доступ из sessionScope в EL.

<c:forEach var="current" items="${sessionScope.bean.users}" >
<tr>
    <td>${current.email}</td>
    <td>${current.username}</td>
    <td><input type="checkbox" name="delete" value="${current.email}"</td>
</tr>
 </c:forEach>
Другие вопросы по тегам