2011-10-17 48 views
1

我对Spring MVC使用Bean Validation。 Spring将验证失败绑定到定义了失败注释的bean属性,以及基于类的约束到bean本身。如何将bean验证(JSR303)约束分配给bean属性?

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

例如:

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

    private String passVerify; 
} 

但是,这是ONLY,请不要告诉我怎么可以编写自定义约束/注解的可投入到pass变量

我可能需要的是类似的东西:

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

所以我的问题是:

  • 是否存在的东西是解决这一问题?
  • 有没有人有更好的主意(我没有问题,如果它使用弹簧)?

回答

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

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

+0

我理解你了吗:这是一个提示如何实现的东西? – Ralph