gpt4 book ai didi

java - 将 validator.validate 中的 ConstraintViolation 集与 ConstraintValidatorContext 合并

转载 作者:搜寻专家 更新时间:2023-11-01 00:58:09 24 4
gpt4 key购买 nike

是否有一些方法(除了 foreach,但好的 foreach 可能就足够了)从自定义 ConstraintValidator 返回来自 validator.valid 的消息?

简单示例(是的,我正在尝试进行条件验证)

@TestFormConstraint
public class TestForm {

@NotEmpty
String foo;

boolean checkBar = false;

@NotEmpty(groups=CheckBarGroup.class)
String bar;

//getters & setters ...
}
public class TestFormValidator 
implements ConstraintValidator<TestFormConstraint, TestForm> {

@Autowired
private Validator validator;

@Override
public void initialize(ValidTestForm constraintAnnotation) {}

@Override
public boolean isValid(TestForm form, ConstraintValidatorContext context) {
if(form.isCheckBar()){
Set<ConstraintViolation<TestForm>> con =
validator.validate(form, CheckBarGroup.class);
if(!con.isEmpty()){
//ok, so what to do here? iterate over con and for each msg
//call context.buildConstraintViolationWithTemplate ?
return false;
}
}
return true;
}

}

有什么想法吗?

最佳答案

您可以在这种情况下使用群组。因此,删除 checkBar 字段并仅指定或不指定 CheckBarGroup

喜欢

validator.validate(testForm)validator.validate(testForm, CheckBarGroup.class, Default.class)

关于java - 将 validator.validate 中的 ConstraintViolation 集与 ConstraintValidatorContext 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795530/

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