@RequstBody和@RequstParam的区别
时间: 2023-06-19 09:07:14 浏览: 36
`@RequestBody`和`@RequestParam`都是Spring MVC框架中用于从HTTP请求中获取参数的注解,但是它们有一些不同的使用场景和语法。
`@RequestParam`注解用于从HTTP请求的URL中获取参数,例如`http://example.com?param=value`,其中`param`就是参数名,`value`就是参数值。使用`@RequestParam`注解可以将参数值绑定到方法参数上,例如:
```java
@RequestMapping(value = "/example")
public void example(@RequestParam("param") String paramValue) {
// ...
}
```
上面的代码中,`@RequestParam`注解指定了参数名为`"param"`,这样Spring MVC就会从HTTP请求的URL中获取名为`"param"`的参数值,并将其绑定到`paramValue`参数上。
`@RequestBody`注解用于从HTTP请求的消息体中获取参数,例如JSON或XML格式的请求。使用`@RequestBody`注解可以将请求消息体中的内容绑定到方法参数上,例如:
```java
@RequestMapping(value = "/example", method = RequestMethod.POST)
public void example(@RequestBody ExampleDto exampleDto) {
// ...
}
```
上面的代码中,`@RequestBody`注解指定了参数类型为`ExampleDto`,这样Spring MVC就会将HTTP请求的消息体中的内容反序列化为`ExampleDto`对象,并将其绑定到`exampleDto`参数上。
总之,`@RequestParam`注解用于获取HTTP请求中的URL参数,而`@RequestBody`注解用于获取HTTP请求中的消息体参数。