У меня есть страница adminpanel.jsp, которая должна показывать все имена пользователей и каждого из их массивов. У меня есть вложенный цикл forEach. Цикл верхнего уровня работает отлично, он отображает информацию по запросу.JSTL inested forEach on Array, отображающий пустой
Вторая петля появляется как пустой массив. []
Я проверил внутри своей программы, сам массив заполнен.
Это моя .jsp страница:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Admin Panel</title>
</head>
<body>
<%
UserService us = ServiceProvider.getUserService();
List<User> allUsers = us.getAllUsers();
request.setAttribute("allUsers", allUsers);
%>
<h1>This is the admin panel</h1>
<c:forEach step="1" var="user" items="${allUsers}">
<h3>${user.firstName} ${user.lastName}</h3>
<c:out value="${user.allPomodoros}" /> // shows up empty
<c:forEach step="1" var="pomodoro" items="${user.allPomodoros}">
<table>
<tr>
<th>User ID</th>
<th>Start Time</th>
<th>End Time</th>
<th>Completed</th>
<th>Pomodoro ID</th>
</tr>
<tr>
<td>${pomodoro.userID}</td>
<td>${pomodoro.beginTime}</td>
<td>${pomodoro.endTime}</td>
<td>${pomodoro.isCompleted}</td>
<td>${pomodoro.pomodoroID}</td>
</tr>
</table>
</c:forEach>
</c:forEach>
</body>
</html>
Если вам нужна дополнительная информация, дайте мне знать.
Если $ {user.allPomodoros} ничего не печатает, метод getAllPomodoros() возвращает null или пустую коллекцию. В опубликованном коде нет ничего, что могло бы заставить нас думать иначе: никакого кода пользователя, ничего печатного, показывающего, что коллекция не пуста и т. Д. Также удалите step = "1": это бесполезный шум. –
проверьте данные в компоненте с помощью System.out.println (...); затем проверить журналы сервера – Taha