2016-06-13 10 views
0

Ich habe eine adminpanel.jsp Seite, die alle Namen der Benutzer und jedes ihrer Arrays anzeigen soll. Ich habe eine verschachtelte ForEach-Schleife. Die Schleife auf oberster Ebene funktioniert einwandfrei und zeigt die Informationen wie angefordert an.JSTL geschachtelt fürJedes auf Array zeigt leer

Die zweite Schleife wird als leeres Array angezeigt. [] Ich habe in meinem Programm überprüft, das Array selbst ist ausgefüllt.

Dies ist meine .jsp Seite:

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

Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen.

+0

Wenn $ {user.allPomodoros} nichts ausgibt, gibt die getAllPomodoros() -Methode null oder eine leere Auflistung zurück. Es gibt nichts im geposteten Code, das uns dazu bringen könnte, etwas anderes zu denken: kein Code des Benutzers, nichts gedruckt, was zeigt, dass die Sammlung nicht leer ist, etc. Außerdem entferne step = "1": es ist unnützes Rauschen. –

+0

überprüfen Sie Ihre Daten in der Bean mit System.out.println (...); dann überprüfen Serverprotokolle – Taha

Antwort

0

Wenn der Name user.firstName angezeigt wird. Debuggen Sie Ihr Programm, fügen Sie einen Breakpoint nach < request.setAttribute ("allUsers", allUsers);> hinzu. Fügen Sie die benutzerdefinierte Variable allUsers.get (0) hinzu, um zu überprüfen, was Sie wirklich für allPomodoros erhalten.

+0

Sie haben Recht, etwas stimmt nicht in meinem Programm. Versuche herauszufinden, was. Vielen Dank für den Hinweis. – Cake