2016-06-13 6 views
0

adminpanel.jspページには、ユーザーとその配列のすべての名前が表示されるはずです。私は入れ子になったforEachループを持っています。トップレベルのループは正常に動作し、要求された情報を表示します。JSTLネストされたforEach配列が空になって表示される

2番目のループは空の配列として表示されます。 [] 自分のプログラム内で、配列自体が読み込まれていることを確認しました。

これは私の.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または空のコレクションを返します。投稿されたコードには、ユーザーのコードなし、コレクションが空でないことの表示など何も表示されません。また、ステップ= "1"を削除してください:無駄なノイズです。 –

+0

Bean内のデータをSystem.out.println(...)で検証します。 次にサーバーログを確認してください – Taha

答えて

0

user.firstNameが表示されている場合。プログラムをデバッグし、< request.setAttribute( "allUsers"、allUsers);>の後にブレークポイントを追加します。カスタム変数allUsers.get(0)を追加して、allPomodorosの実際の内容を確認します。

+0

あなたは正しいですが、私のプログラムで何かが正しくありません。何を理解しようとしています。 ありがとうございます。 – Cake

関連する問題