如何显式地将Bean Validation(JSR 303)约束分配给bean属性?

时间:2011-10-17 17:24:19

标签: java spring bean-validation

我对Spring MVC使用Bean Validation。 Spring将验证失败绑定到定义了失败注释的bean属性,以及bean本身的基于类的约束。

我的问题是我使用了几个类库验证约束,但验证失败不应该分配给类,而应该分配给其中一个属性。

例如:

@ScriptAssert(lang = "javascript", script = "_this.passVerify.equals(_this.pass)")
public class MyBean {
    @Size(min=6, max=50)
    private String pass;

    private String passVerify;
}

示例,请不要告诉我如何编写可以放入{{的自定义约束/注释1}}变量

我可能需要的是这样的事情:

pass

所以我的问题是:

  • 是否存在解决该问题的事情?
  • 是否有人有更好的想法(如果使用弹簧我没有问题)?

1 个答案:

答案 0 :(得分:0)

@ValidationAlias(
   constraint = @ScriptAssert(lang = "javascript", script = "_this.passVerify.equals(_this.pass)"),
   field = "pass")
public class MyBean {...

ConstraintValidator#isValid ConstraintValidatorContext 结合使用似乎是您最好的选择,它允许您自定义错误消息和路径。通过 disableDefaultConstraintViolation ,您可以禁用默认错误消息。