2016-06-13 4 views
0

У меня есть страница 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> 

Если вам нужна дополнительная информация, дайте мне знать.

+0

Если $ {user.allPomodoros} ничего не печатает, метод getAllPomodoros() возвращает null или пустую коллекцию. В опубликованном коде нет ничего, что могло бы заставить нас думать иначе: никакого кода пользователя, ничего печатного, показывающего, что коллекция не пуста и т. Д. Также удалите step = "1": это бесполезный шум. –

+0

проверьте данные в компоненте с помощью System.out.println (...); затем проверить журналы сервера – Taha

ответ

0

Если появляется user.firstName. Отлаживайте свою программу, добавляйте точку останова после < request.setAttribute («allUsers», allUsers);>. добавьте настраиваемую переменную allUsers.get (0), чтобы проверить, что вы действительно получаете для allPomodoros.

+0

Вы правы, что-то не так в моей программе. Попытка выяснить, что. Спасибо за указание. – Cake