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

问题描述

我有一个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,但我不知道是否或如何。

解决方法

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

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

享受!