休眠验证器-动态验证消息

时间:2020-09-24 11:18:25

标签: java dynamic hibernate-validator

我有一个类X,该类具有三个字段:stateAB的枚举),a和{{1 }}。 当bstate时,A不得为a,当nullstate时,B不得为{{ 1}}。

b

使用hibernate-validator,我构建了以下验证器:

null

因此,每当验证失败时,我都会收到消息@ValidateCondition(message = "Validation failed") public class X { private State state; private String a; private String b; } ,但是我想要的只是一条消息,告诉我为什么失败,例如@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = MyValidator.class) @Documented public @interface ValidateCondition { String message() default "ValidateCondition failed"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; } public class MyValidator implements ConstraintValidator<ValidateCondition, X> { @Override public boolean isValid(X x, ConstraintValidatorContext context) { if(x.getState()==State.A){ return x.getA() != null; } if(x.getState()==State.B){ return x.getB() != null; } } }

我假设我可以以某种方式使用Validation failed,但我不知道是否或如何。

1 个答案:

答案 0 :(得分:1)

这很简单: 只需在isValid区域内调用上下文:

import '@aws-amplify/ui/dist/style.css';

享受!