Ore*_*est 1 hibernate-validator javax
我有我的自定义validator
,我想为它添加一些错误消息.所以我有下一个代码:
@Override
public boolean isValid(final String label,
final ConstraintValidatorContext constraintValidatorContext) {
constraintValidatorContext.disableDefaultConstraintViolation();
if(label.length() > MAX_LENGTH) {
constraintValidatorContext
.buildConstraintViolationWithTemplate("{error.maxLength}")
.addConstraintViolation();
return false;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我的消息看起来像error.maxLength=You have exceeded max length of {0}
,所以它有参数maxLength
.
在构建约束违规时可以添加它吗?
是的你可以.
你需要解开ConstraintValidatorContext
一个HibernateConstraintValidatorContext
:
HibernateConstraintValidatorContext hibernateConstraintValidatorContext = constraintValidatorContext.unwrap( HibernateConstraintValidatorContext.class );
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用:
hibernateConstraintValidatorContext.addMessageParameter("name", value);
Run Code Online (Sandbox Code Playgroud)
(你的看起来像一个消息参数({variable}
)所以它可能是你必须使用的 - 注意你需要HV 5.4.1.Final来拥有这个方法)
要么
hibernateConstraintValidatorContext.addExpressionVariable("name", value);
Run Code Online (Sandbox Code Playgroud)
如果它是一个表达式变量(所以使用表达式语言等${variable}
)
归档时间: |
|
查看次数: |
1720 次 |
最近记录: |