为什么参数上必须加@RequestBody?

发布时间:2023年12月18日
@PostMapping("/login")
    public Result<Map<String,Object>> login(@RequestBody User user){
        return Result.success();
    }

在这个 @PostMapping("/login") 的控制器方法中,使用 @RequestBody 注解的目的是将请求体中的 JSON 数据映射到方法参数 User user 上。

假设前端发送的 POST 请求体是一个包含用户信息的 JSON 数据,例如

{
  "username": "exampleUser",
  "password": "examplePassword"
}

通过使用 @RequestBody 注解,Spring 框架会尝试将这个 JSON 数据转换成 User 对象。而不使用 @RequestBody 的话,Spring 会默认将请求体中的参数作为表单数据处理,而不是 JSON 数据。

具体来说,@RequestBody 注解告诉 Spring 框架,要从请求体中获取数据,并将其转换成方法参数 user 的实例。这样,你就能够方便地在方法体内使用这个 user 对象,而不需要手动解析请求体中的 JSON 数据。

总结一下,使用 @RequestBody 的目的是让 Spring 自动将请求体中的 JSON 数据转换为方法参数的实例,使得在控制器方法中能够方便地操作请求体中的数据。

文章来源:https://blog.csdn.net/m0_64880608/article/details/135053159
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。