我有以下课程
public class RequestResponseWrapper {
MyDto myDto;
}
public class MyDto {
private String field1;
private String field2;
....
}
我有以下控制器方法:
@RequestMapping(...)
@ResponseStatus(HttpStatus.NO_CONTENT)
@ResponseBody
public RequestResponseWrapper putData(@ModelAttribute RequestResponseWrapper requestResponseWrapper) {
....
}
我写了以下活页夹:
@InitBinder("requestResponseWrapper")
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(MyDto.class, new PropertyEditorSupport() {
public void setAsText(String name) {
setValue(StringUtils.isNotBlank(name) ? name : null);
}
});
}
现在如果我从客户端获得空对象,它将转换为以下结构:
requestResponseWrapper--
myDto--
field1 = null
field2 = null
....
预期结果:
requestResponseWrapper--
myDto = null
如何更改我的代码?
答案 0 :(得分:0)
如果值为null,则不应将该值设置为null。当您的值不为null时,只需将其设置为您想要的值(名称)。我希望这是有道理的。
@InitBinder("requestResponseWrapper")
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(MyDto.class, new PropertyEditorSupport() {
public void setAsText(String name) {
if (StringUtils.isNotBlank(name)) {
setValue(name);
}
}
});
}