如何用实体DTO接收controller的requestParam参数
时间: 2024-10-09 18:10:07 浏览: 26
在Java web开发中,当我们需要将Controller层接收到的RequestParam参数映射到服务层的数据传输对象(DTO)上时,通常会用到ModelMapper、Spring MVC的`@ModelAttribute`或者手动进行属性绑定。这里以几种常见方法举例:
1. **使用ModelMapper**:
安装ModelMapper库后,创建一个对应的DTO类。然后,在Controller里,通过`modelMapper.map(request.getParameterMap(), yourDtoClass)`将请求参数转换成DTO。
```java
@GetMapping("/example")
public YourResponse handleRequest(@ModelAttribute("yourDto") YourDTO dto) {
modelMapper.map(request.getParameterMap(), dto);
// ...后续处理
}
```
2. **使用Spring MVC自动绑定**:
如果你的DTO类有getter和setter方法,并且参数名与字段名一致,可以在Controller方法上添加`@ModelAttribute`注解,Spring MVC会自动将请求参数绑定到参数变量上。
```java
@PostMapping("/example")
public YourResponse handleRequest(@ModelAttribute YourDTO dto) {
// ...后续处理
}
```
3. **手动绑定**:
对于复杂的场景,可以逐个属性地从请求参数中获取值并赋给DTO的相应字段。
```java
@PostMapping("/example")
public YourResponse handleRequest(@RequestParam Map<String, String> params) {
YourDTO dto = new YourDTO();
dto.field1 = params.getOrDefault("field1", "");
// ...其他属性设置
// ...后续处理
}
```
阅读全文