【问题标题】:Spring @RequestBody annotation in Restful web serviceRestful Web服务中的Spring @RequestBody注解
【发布时间】:2015-12-16 13:03:38
【问题描述】:

感谢@RestController我不需要添加注解@ResposneBody,因为spring知道它是rest控制器,他不会生成视图,而是返回json对象。

不幸的是,还有一个与此主题相关的注释。它是@RequestBody,当控制器方法接受json 对象作为参数时。并且必须在该参数之前指向它。

我的问题是有没有办法摆脱那个注释(@RequestBody)。?如果我的控制器是 REST 控制器(@RestController 而不是常规的@Controller),应该从 spring 要求它?

【问题讨论】:

    标签: java json spring rest spring-mvc


    【解决方案1】:

    不,您必须指定@RequestBody。 Java 方法只能有一个返回值,因此 @ResponseBody 是明确的,但映射控制器参数可能有多种解释方式(特别是,使用带有表单编码的 @ModelAttribute 是非常常见的替代方法@RequestBody with JSON),你需要告诉 Spring 如何映射传入的请求。

    【讨论】:

    • @ModelAttribute 不能替代 @RequestBody,就像苹果不能替代橙子一样。
    • @zeroflagL 也就是说,有点不同,但通常是一个合理的替代品。
    • 当请求包含表单编码数据时,您可以省略任何注释。 @ModelAttribute 的目的是为模型添加一些东西(原文如此!),即使其可用于视图。
    猜你喜欢
    • 2018-10-25
    • 2012-07-02
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多