能用两个@RequestBody吗
时间: 2023-07-04 15:11:50 浏览: 87
在 Spring MVC 中,一个请求只能有一个请求体,因此一个方法中只能使用一个 `@RequestBody` 注解。如果有多个数据需要接收,可以将它们封装成一个对象,然后使用一个 `@RequestBody` 注解接收整个对象。例如:
```java
@PostMapping("/example")
public void example(@RequestBody ExampleDto exampleDto,
@RequestBody AnotherDto anotherDto) {
// 处理业务逻辑
}
```
上述代码是错误的,因为同时使用了两个 `@RequestBody` 注解。应该将 `ExampleDto` 和 `AnotherDto` 封装成一个对象,例如:
```java
public class RequestDto {
private ExampleDto exampleDto;
private AnotherDto anotherDto;
// getter 和 setter 方法
}
@PostMapping("/example")
public void example(@RequestBody RequestDto requestDto) {
ExampleDto exampleDto = requestDto.getExampleDto();
AnotherDto anotherDto = requestDto.getAnotherDto();
// 处理业务逻辑
}
```
在上述代码中,将 `ExampleDto` 和 `AnotherDto` 封装成了一个 `RequestDto` 对象,然后使用一个 `@RequestBody` 注解接收整个对象。这样就可以同时接收多个数据了。
阅读全文