我试图列出在线用户和离线用户。
但由于我无法从函数中返回2个arrayLists,我该怎么办?
控制器
@RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
public @ResponseBody List<User> getLoggedUsers() {
Map<String,User> users = User.getUsers().stream().collect(Collectors.toMap(User::getUsername, Function.identity()));
List<User> onlineUsers = new ArrayList<>();
for(String username : activeUsers.getUsers()) {
User user = users.get(username);
if(user != null) {
onlineUsers.add(user);
}
}
return onlineUsers;
}
现在我需要其余的(不是在线用户)并将它们标记为离线
AJAX
//get loggedUsers
$.ajax({
url: '/loggedUsers',
type: 'get',
success: function (loggedUsers) {
console.log(loggedUsers);
}
});
答案 0 :(得分:1)
您可以创建一个对象,其中包含2个arrayLists的两个属性
ResponseObject
{
List<User> onlineUsers;
List<User> offlineUsers;
}
将此对象作为回复返回。
在javascript响应中,您将获得此2个数组列表
//get loggedUsers
$.ajax({
url: '/loggedUsers',
type: 'get',
success: function (Users) {
console.log(Users.onlineUsers);
console.log(Users.offlineUsers);
}
});