如何解决休眠验证器-动态验证消息
我有一个类X
,该类具有三个字段:state
(A
和B
的枚举),a
和{{1 }}。
当b
为state
时,A
不得为a
,当null
为state
时,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';
享受!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。