我按照
获取UserListList<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)
我该怎么做,请建议
答案 0 :(得分:0)
只需将必要的信息放在请求范围内即可。对于用户活动,最简单的方法是将Map<Long, UserActivity> userActivities
作为密钥用户ID。然后,您可以使用${userActivities[user.id]}
在EL中访问它。
E.g。
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
)