Как добавить поле объекта в другой объект, чтобы отобразить его в JSP - PullRequest
0 голосов
/ 01 октября 2011

Я получаю список пользователей, выполнив

List<User> UserList=usersService.findUsers();

, чем я перебираю этот список и на основе id получаем другой объект UserActivity, и хотим получить поле объекта UserActivity LastSeen_time.

 Iterator<User> iterator = UserList.iterator();
         while(iterator.hasNext()){
                 User user= iterator.next() ;
                 System.out.println("userA"+user.getId());
                 UserActivity userActivity  =  userActivityService.findUser(user.getId());
                 System.out.println("userActivity"+userActivity.getLastSeen_time());


         }

Теперь я хочу передать User и UserActivity.LastSeen_time на страницу jsp, где я буду отображать ее как

User.name User.id UserActivity.LastSeen_Time(corresponding time for each id)

Как я могу это сделать, пожалуйста, предложите

1 Ответ

0 голосов
/ 01 октября 2011

Просто поместите необходимую информацию в область запроса. Для действий пользователя проще всего иметь Map<Long, UserActivity> userActivities с идентификатором пользователя в качестве ключа. Вы можете получить к нему доступ в EL, используя ${userActivities[user.id]}.

* 1005 Е.Г. *

List<User> users = userService.list();
Map<Long, UserActivity> userActivities = new HashMap<Long, UserActivity>();

for (User user : users) {
    userActivities.put(user.getId(), userActivityService.findByUser(user));
}

request.setAttribute("users", users);
request.setAttribute("userActivities", userActivities);

, а затем в JSP

<table>
  <tr>
    <th>User name</th>
    <th>User ID</th>
    <th>Last seen time</th>
  </tr>
  <c:forEach items="${users}" var="user">
    <tr>
      <td><c:out value="${user.name}" /></td>
      <td>${user.id}</td>
      <td><fmt:formatDate value="${userActivities[user.id].lastSeen}" pattern="yyyy-MM-dd HH:mm:ss" /></td>
    </tr>
  </c:forEach>
</table>

(я предполагаю, что getLastSeen() возвращает Date)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...