Перебор элементов 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>