我正在编写自定义javax.validation.ConstraintValidator
。我想在我的ConstraintViolation
上添加一个自定义属性路径,包括父属性路径。所以:
class BaseClass {
@Valid MyProperty first;
}
@MyValidator class MyProperty {
String someField;
}
class MyValidatorImpl implements ConstraintValidator<MyValidator, MyProperty> {
// ...
public boolean isValid(MyProperty value, ConstraintValidatorContext context) {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate("My message")
// How to access the parent property name "first" here?
.addPropertyNode("my custom property")
.addConstraintViolation()
}
}
任何帮助将不胜感激。
答案 0 :(得分:0)
显然,答案是在.addBeanNode()
调用之后的 之后添加一个.addPropertyNode()
调用。实际上,这将在属性名称之前 添加父节点名称。请注意,您不能在调用addBeanNode()
之前调用addPropertyNode()
,因为其背后的构建器不允许这样做。