【发布时间】:2020-03-13 16:49:38
【问题描述】:
我正在尝试显示从我的控制器接收到的 HashMap 的内容,但是我得到一个空地图。
这是我的控制器:
@PostMapping(value = "getAllUsers")
public HashMap<String, Object> getAllUsers(@RequestBody String s)
{
List<User> list = userRepository.getAll(s);
HashMap<String, Object> userList = new HashMap<String, Object>();
userList.put("list", list);
userList.put("total", list.size());
return userList;
}
这是我的角度代码:
getUsers() {
this.userService.getUsers("canada").subscribe((data) => {
console.log(data); // this returns an empty object
data.forEach((value: string, key: string) => { // returns an error which is forEach is not a function
console.log(key, value);
});
this.userList = data; // empty
console.log(this.userList);
});
}
这是我的 api 服务:
let URL = "api/v1";
getUsers(country: String): Observable<any> {
return this.http.post(URL + "getAllUsers", country);
}
我想知道如何操作和迭代从我的控制器接收到的 HashMap。提前谢谢你。
【问题讨论】:
-
尝试使用
http.get()而不是http.post(),首先了解http 协议的工作原理,然后使用它们。 -
您的网址是否完整?你所展示的是“api/v1/getAllUsers”。您是否在网络选项卡中检查了呼叫的响应?
-
你确定
List<User> list = userRepository.getAll(s);有值canada的数据吗?此外,data上的forEach不会在前端工作,因为它不是Array类型,您需要在data.list上迭代它。 -
是的,有加拿大价值的数据,我可以得到总数,但不能得到数据本身