我想在验证消息中包含更多信息,例如要评估的类的ID。例如:
class Clown {
int id;
@Min(value=15, message="Clown id:{id}'s shoe size should be greater than 15"
int shoeSize;
}
有没有办法实现这一点,无论是否在javax或Hibernate中定义自定义验证器?
如果没有,你能否建议任何其他可以做到这一点的验证框架?
答案 0 :(得分:0)
Hibernate Validator具有HibernateConstraintValidatorContext的概念,允许您在消息插值之前将自定义变量绑定到EL上下文中。您可以通过以下方式在约束验证器实现中获取HibernateConstraintValidatorContext:
HibernateConstraintValidatorContext hibernateContext = context.unwrap( HibernateConstraintValidatorContext.class );
但是,这意味着您可以在约束验证器中获取要绑定的值。在你的情况下,不确定你能做到这一点。在某种程度上,你想要获得小丑id,但你无法访问字段约束验证器中的完整小丑实例。我想你可以使用类级约束。在这种情况下,您可以访问id,但另一方面,您需要以编程方式进行min检查,而不能使用@Min。