我有我的自定义@Override
public boolean isValid(final String label,
final ConstraintValidatorContext constraintValidatorContext) {
constraintValidatorContext.disableDefaultConstraintViolation();
if(label.length() > MAX_LENGTH) {
constraintValidatorContext
.buildConstraintViolationWithTemplate("{error.maxLength}")
.addConstraintViolation();
return false;
}
...
}
,我想为它添加一些错误消息。
所以我有下一个代码:
error.maxLength=You have exceeded max length of {0}
我的邮件看起来像maxLength
,因此参数为let disposeBag = DisposeBag()
。
在构建约束违规时可以添加它吗?
答案 0 :(得分:6)
是的,你可以。
您必须使用以下内容将ConstraintValidatorContext
打包到HibernateConstraintValidatorContext
HibernateConstraintValidatorContext hibernateConstraintValidatorContext = constraintValidatorContext.unwrap( HibernateConstraintValidatorContext.class );
然后,您可以使用:
hibernateConstraintValidatorContext.addMessageParameter("name", value);
(你的看起来像一个消息参数({variable}
)所以它可能是你必须使用的 - 注意你需要HV 5.4.1.Final才能有这个方法)
或
hibernateConstraintValidatorContext.addExpressionVariable("name", value);
如果它是一个表达式变量(所以使用表达式语言和${variable}
之类的东西)