用户在这里正常地传递给该方法:
@PutMapping
@RequestMapping("/update_user")
public String update(@RequestBody List<CustomUser>users) {
return ......
}
邮递员PUT请求正文:
[
{"name":"Name1"},
{"name":"Name2"}
]
但是在这里我收到一个错误:“无法解析CustomUser类型的参数1”:
@PutMapping
@RequestMapping("/update_user")
public String update(@RequestBody CustomUser user1, CustomUser user2) {
return ......
}
邮递员PUT请求正文:
{
"user1":{"name":"Name1"},
"user2":{"name":"Name2"}
}
我究竟做错了什么?
带注释的RequestBody带参数的参数应可容纳整个请求并绑定到一个对象,因此,您基本上只需要使用一个对象
现在,您可以像这样将它们包裹起来
public class Payload {
CustomUser user1;
CustomUser user2;
//getters & setters
}
并将其用于 RequestBody
@PostMapping
@RequestMapping("/update_user")
public String update(@RequestBody Payload users) {
return ......
}
或者你可以使用一个Map<String, CustomUser>
用于RequestBody
@PostMapping
@RequestMapping("/update_user")
public String update(@RequestBody Map<String, CustomUser> users) {
//you can access like this
CustomUser user1 = users.get("user1");
CustomUser user2 = users.get("user2");
}
需要注意的另一件事是,您正在按POST
请求进行映射,但注释中显示“ PUT”。还要检查一下。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句