@RequestBody参数封装

在看别人的代码时,对于请求参数的封装是这样的写的:

@RequestMapping(value = "/getUserInfo", method = { RequestMethod.POST, RequestMethod.GET }, name="getUserInfo")
    public String getUserInfo(@RequestBody User user, List<String> list, int[] num, String str) {
    }

这里使用 @RequestBody 来获取请求体中封装的 json 对象。 但是后面又跟了一个或多个参数,这里让我很迷惑。

除了第一个参数加了 @RequestBody 注解,其他参数并没有加注解。

这些参数是如何封装解析的? 代码中并没有做特殊的配置,所以也没法贴出更多的代码。

阅读 7.5k
5 个回答

建议看看springMVC的源码。

没加注解的参数,在控制器实际调用时应该都是null吧。
这么设计应该是方便其它控制器方法调用,传递定制化参数

应该只有 user和str 这两个参数可以接收到。
user在body传输过来,str从url传

没用使用@RequestBody的形参可以通过URL传值设置进去

@RequestBody其实也可以省略。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题