我的自定义DTO类如下:
public class TestDto1 {
private String key;
private String val;
@AssertTrue
private boolean isValid() {
return key !=null || val !=null;
}public class TestDto1 {
private String key;
private String val;
@AssertTrue
private boolean isValid() {
return key !=null || val !=null;
}
我的家长DTO课程:
public class TestDto {
private String id;
@Valid
private TestDto1 tes;
public TestDto1 getTes() {
return tes;
}
public void setTes(TestDto1 tes) {
this.tes = tes;
}
public String getId() {
return id;
运行应用程序并使用以下 JSON 访问 api 时,出现以下错误:
{
"id":"1234",
"tes":{
}
}
JSR-303 validated property 'tes.valid' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access)] with root cause
org.springframework.beans.NotReadablePropertyException: Invalid property 'tes.valid' of bean class [com.example.thirdparty.controller.TestDto]: Bean property 'tes.valid' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
请让我知道这里需要做什么
这不是一个经过验证的字段,而是一种从该方法中作为虚拟字段读取的方法。
我认为该方法必须声明为公共才能进行验证
@AssertTrue
public boolean isValid() {
return key !=null || val !=null;
}
对于其他可能想知道的人,方法名称需要以
is...
、has...
开头或其他变体不起作用。