1、@RequestBody

@RequestBody 注解的作用是:把请求体中的数据绑定到相应的参数上,它可以用在 @Controller 的处理方法上,用于接收前端发送的 json 格式的数据。

@RequestBody 注解可以将 post 请求的 body 中的数据绑定到相应的参数上,可以接收任何类型的数据,只要前端发送的数据类型与后台接收的参数类型相同即可。

@RequestMapping(value = "/test/{id}", method = RequestMethod.POST)public void test(@PathVariable("id") String id, @RequestBody String body){System.out.println(body);}
Java

2、@RequestParam

@RequestParam 注解的作用是:从请求参数中获取指定参数的值,它可以用在 @Controller 的处理方法上,用于接收前端发送的 get 请求参数。

@RequestParam 注解可以将 get 请求的参数绑定到相应的参数上,可以接收任何类型的参数,只要前端发送的参数类型与后台接收的参数类型相同即可。

@RequestMapping(value = "/test", method = RequestMethod.GET)public void test(@RequestParam("name") String name){System.out.println(name);}
Java

3、使用 @RequestBody 和 @RequestParam 需要注意什么

使用 @RequestBody 和 @RequestParam 前,需要先确定请求的方法是 GET 还是 POST,以及请求的参数类型,只有当参数类型与后台接收的参数类型相同时,才能使用 @RequestBody 和 @RequestParam 注解进行参数绑定。

另外,需要注意的是,@RequestBody 和 @RequestParam 只能处理单个参数,如果参数是多个,则需要使用 @RequestBody 注解的注解参数为实体类,实体类中的字段要与参数名称一致,才能实现多参数的绑定。