当前位置: 首页 > 知识库问答 >
问题:

Spring中的@RequestBody和@ResponseBody注释

傅越
2023-03-14

有人能解释一下Spring3中的@requestbody@responsebody注释吗?它们是干什么用的?任何例子都很好。

共有1个答案

支彭亮
2023-03-14

文档中有一个称为16.3.3.4的部分将请求体与@RequestBody注释映射在一起。一个称为16.3.3.5,它将响应体与@ResponseBody注释映射在一起。我建议你参考一下这些章节。同样相关的:@requestbodyjavadocs,@responsebodyjavadocs

用法示例如下所示:

使用JQuery这样的JavaScript-library,可以发布如下所示的JSON-Object:

{ "firstName" : "Elmer", "lastName" : "Fudd" }
// controller
@ResponseBody @RequestMapping("/description")
public Description getDescription(@RequestBody UserStats stats){
    return new Description(stats.getFirstName() + " " + stats.getLastname() + " hates wacky wabbits");
}

// domain / value objects
public class UserStats{
    private String firstName;
    private String lastName;
    // + getters, setters
}
public class Description{
    private String description;
    // + getters, setters, constructor
}
{ "description" : "Elmer Fudd hates wacky wabbits" }

关于完整的工作示例,请参阅我前面的回答:https://stackoverflow.com/a/5908632/342852

注意:RequestBody/ResponseBody当然不限于JSON,两者都可以处理多种格式,包括纯文本和XML,但JSON可能是使用最多的格式。

从Spring4.x开始,您通常不会在方法级别上使用@responsebody,而是在类级别上使用@restcontroller,具有相同的效果。

@RestController是一个组合注释,它本身用@controller@ResponseBody进行元注释,以指示一个控制器,该控制器的每个方法都继承类型级的@ResponseBody注释,因此,直接写入响应体,而不是视图分辨率和HTML模板呈现。

 类似资料:
  • 问题内容: 有人可以在Spring 3中解释@RequestBody和@ResponseBody注释吗?他们是干什么的?任何例子都很好。 问题答案: 在文档中有一个名为16.3.3.4的完整章节,其中将请求主体与@RequestBody批注进行映射。还有一个叫做16.3.3.5的映射,它使用@ResponseBody注释映射响应主体。我建议你查阅这些部分。也相关:@RequestBodyjavad

  • 我必须实现的逻辑是记录所有的请求与主体服务到数据库。 据我所知,在Controller中,我们可以使用和。我可以在重用它们吗?

  • 所以我知道通过这个注释: 此方法处理对URL/Orders表示的资源发出的GET HTTP请求。 此方法调用返回列表的DAO对象。 确保结果将由HTTP消息转换器(而不是MVC视图)写入HTTP响应。 也可以阅读Spring官方文档:http://docs.Spring.io/Spring/docs/current/javadoc-api/org/springframework/web/bind/

  • 我用一个简单的post和get方法编写了一个非常简单的控制器类。 今天是我第一次使用Postman-我不知道我做错了什么,但每次使用POST映射,我都会得到: 控制器类别: 我添加了一个< code>@RequestBody,但它仍然说它丢失了。 如何解决这个麻烦?

  • 问题内容: 我有一种通过以下方式注释的方法: 所以我知道这个注释: 此方法处理对由URL / orders* 表示的资源发出的 GET HTTP请求。 * 此方法调用返回 List 的DAO对象。 其中 Account 代表系统上的用户,并具有代表该用户的某些字段,例如: 我的问题是: 批注 到底如何工作? 它位于返回的对象之前,因此我认为它引用了此List。课程文档指出,此注释可用于: 确保结果

  • 我试图弄清楚为什么当Spring处理程序方法包含注释时,我不能从jquery.ajax调用接收请求。考虑以下几点: HTML/JavaScript: Java: 如果出现注释,上述操作将失败,并返回一个415错误(不会生成异常)。但是,如果删除注释(即参数签名只是),那么将调用该方法并将JSON返回给JavaScript。 为什么会这样呢?请求包括请求正文中的数据。注释不应该处理这样的请求吗? 我