hdw*_*dw3 4 java spring dictionary controller angular
Angular 客户端- httpClient 发送请求
const map: Map<string, string> = new Map<string, string>();
map.set('foo', 'bar');
this.http.post(address, map, httpOptions).subscribe(
next => console.log('next: ' + next),
error => console.log('error: ' + error),
() => console.log('complete')
);
Run Code Online (Sandbox Code Playgroud)
Springboot 服务器-控制器接收请求
@RequestMapping(value = "/foobar", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public void fooBar(@RequestBody Map<String, String> foo){
System.out.println(foo.entrySet()); //<-- always empty
}
Run Code Online (Sandbox Code Playgroud)
您必须将 Map 转换为键值对数组,事实证明,Typescript 映射不能直接在 http 帖子正文中使用。
您可以按如下方式转换地图:
const convMap = {};
map.forEach((val: string, key: string) => {
convMap[key] = val;
});
this.http.post(apiBaseUrl + '/foobar', convMap, httpOptions).subscribe(
next => console.log('next: ' + next),
error => console.log('error: ' + error),
() => console.log('complete')
);
Run Code Online (Sandbox Code Playgroud)
在后端,您System.out.println(foo.entrySet());将输出以下内容:[foo=bar]
| 归档时间: |
|
| 查看次数: |
3844 次 |
| 最近记录: |