从函数返回2个值 - java

时间:2018-04-17 15:36:34

标签: javascript java jquery

我试图列出在线用户和离线用户。

但由于我无法从函数中返回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);    
    }
});

1 个答案:

答案 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);   
    }
});