我正在 Jersey 的 REST 资源端点中验证我的 POJO:
public class Resource {
@POST
public Response post(@NotNull @Valid final POJO pojo) {
...
}
}
public class POJO {
@NotNull
protected final String name;
@NotNull
@Valid
protected final POJOInner inner;
...
}
public class POJOInner {
@Min(0)
protected final int limit;
...
}
这似乎工作正常。
但是,那@Min(0)
仅当字段存在时才验证注释inner
有@Valid
注解。感觉添加不对@Valid
对每个不是原语的字段进行注释。
有没有办法告诉 bean 验证器自动递归地继续验证,即使没有@Valid
注释存在吗?我想要我的POJO
如下:
public class POJO {
@NotNull
protected final String name;
@NotNull
protected final POJOInner inner;
...
}
实际上,根据规范,添加 @Valid 正是针对此用例。来自 JSR 303 规范:
除了支持实例验证之外,还支持对象图的验证。图验证的结果作为一组统一的约束违规返回。
考虑 bean X 包含类型 Y 的字段的情况。通过使用 @Valid 注释对字段 Y 进行注释,验证器将在验证 X 时验证 Y(及其属性)。
...
@Valid注解是递归应用的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)