gpt4 book ai didi

spring-mvc - 一个 Controller 方法中的多个 @RequestBody 值

转载 作者:行者123 更新时间:2023-12-03 13:18:42 26 4
gpt4 key购买 nike

当我将 PATCH 请求发送到看起来像这样的端点时,我收到错误 400

@RequestMapping(value = "...",
method = RequestMethod.PATCH,
consumes = "application/json",
produces = "application/json")
@ResponseBody
public User updateUserPartial(@PathVariable("userId") String userId,
@RequestBody Map<String, Object> userMap,
@RequestBody User user,
HttpServletResponse response) {
...
}

所以基本上 userMap 和 user 都应该包含不同结构的相同数据。
如果我省略一个 @RequestBody 值,这似乎可以正常工作。
是否有可能同时拥有两个 @RequestBody 值?

最佳答案

您不能使用两个 @RequestBody因为它只能绑定(bind)到单个对象(主体只能被消耗一次)。正如 Luke 解释的那样,最简单的方法是创建一个可以捕获所有相关数据的对象,而不是创建参数中的对象。

另一方面,如果您坚持自己的方法,您可以创建自定义 ArgumentResolver如解释 here

关于spring-mvc - 一个 Controller 方法中的多个 @RequestBody 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27189730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com