自定义DTO内的映射请求参数和字段?
我有以下课程:
public class MyDTO { private String kiosk;
...
}
和以下网址:
http://localhost:1234/mvc/controllerUrl?kiosk=false
和以下控制器方法:
@RequestMapping(method = RequestMethod.GET, produces = APPLICATION_JSON)@ResponseBody
public ResponseEntity<List<?>> getRequestSupportKludge(final MyDTO myDTO, BindingResult bindingResult) {
...
}
现在它可以正常工作,并且布尔字段可以正确解析。
现在,url参数已更改为:
http://localhost:1234/mvc/controllerUrl?new_kiosk=false
我不想在DTO中更改参数名称。有没有办法说Spring理解new_kiosk
应该将请求参数值放入kiosk
字段?
回答:
除了设置其他设置程序外,您还可以通过创建自定义参数解析程序来处理问题。您可以通过几种方法来解决这个问题,如果我是你,我会专注于jkee的答案。逐步进行操作,您要做的就是用类似以下内容的注释DTO,
public class MyDTO { @ParamName("new_kiosk")
private String kiosk;
...
}
请注意,即使您不能更改MyDTO
类,也可以遵循自定义解析程序路线。我已经回答了如何编写参数类型注释。结合这两个帖子,您可以轻松地提出一个注释,例如@ParamMapper
,它将定义从请求到属性的映射。想像
getRequestSupportKludge(@ParamMapper("new_kiosk;kiosk") MyDTO myDTO, BindingResult bindingResult)
以上是 自定义DTO内的映射请求参数和字段? 的全部内容, 来源链接: utcz.com/qa/430937.html