自定义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

回到顶部