gpt4 book ai didi

java - 将属性值注入(inject) java 验证错误消息

转载 作者:行者123 更新时间:2023-11-29 08:48:31 29 4
gpt4 key购买 nike

我想在我的验证消息中包含更多信息,例如正在评估的类的 ID。例如:

class Clown {

int id;

@Min(value=15, message="Clown id:{id}'s shoe size should be greater than 15"
int shoeSize;
}

有没有办法在 javax 或 Hibernate 中定义或不定义自定义 validator 来实现这一点?

如果没有,您能否推荐任何其他可以执行此操作的验证框架?

最佳答案

Hibernate Validator 具有 HibernateConstraintValidatorContext 的概念这允许您在消息插值之前将自定义变量绑定(bind)到 EL 上下文中。您可以通过以下方式在约束 validator 实现中获取 HibernateConstraintValidatorContext:

HibernateConstraintValidatorContext hibernateContext = context.unwrap( HibernateConstraintValidatorContext.class );

然而,这意味着您可以在约束 validator 中获取要绑定(bind)的值。不确定你能不能在你的情况下做到这一点。此时您不知何故想要获取 clown ID,但您无权访问字段约束 validator 中的完整 clown 实例。我猜你可以使用类级别约束。在这种情况下,您可以访问 id,但另一方面,您需要以编程方式进行最小值检查,并且不能使用 @Min。

关于java - 将属性值注入(inject) java 验证错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899430/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com