Open QiYongchuan opened 3 months ago
前面讲到,@requestbody 结合@Controller 一起使用,使控制器返回数据,而不是页面;但更多的时候,我们直接使用@RestController,就省掉了用@requestbody。似乎我们在前后端分离的项目中之后就再也不用@requestbody了,但@requestbody还有别的作用。
一句话总结:当通过请求体body来传值时,就需要用@requestbody
@RequestMapping("/Entiy2")
// 如果前端传递的参数是json格式的,
// 使用@RequestBody来解析
public String entity2(@RequestBody User user){
System.out.println(user);
return "实体类接收参数Json";
}
前端传值JSON形式
1.@Controller与@RestController
涉及MVC模型:
MVC模型
控制器中两种注解:
@Controller与@RestController
@Controller 是返回页面和数据的,当我们只用Controller的时候,默认是找的页面,比如下面是找hello页面了(前后端 不分离的项目)![image](https://github.com/QiYongchuan/MyGitBlog/assets/105039020/087ac14c-138d-4a4f-8d55-123043e33a88)
如果想返回数据,而不是页面呢? 需要加上@RequestBody
@RestController=@Controller和@ResponseBody的结合
当你使用@RestController注解时,Spring会自动处理你的类中的所有方法,使其返回的数据直接作为HTTP响应的正文返回给客户端,而不需要你在每个方法上单独标注@ResponseBody。
@RestController注解是@Controller和@ResponseBody的结合,这意味着它既将类标记为控制器,又表明类中的所有方法都会自动以@ResponseBody的方式处理。这使得@RestController非常适合用于构建RESTful API,其中所有的响应都是数据(如JSON或XML),而不是视图或模板页面。
这种方式简化了开发过程,因为你不需要在每个方法上重复使用@ResponseBody注解,从而让代码更加简洁和直观。总的来说,如果你的应用主要是服务于HTTP API的,使用@RestController会更方便。
前后端分离项目中,主要使用的就是:@RestController