2014-09-25 71 views
1

我使用Spring mvc构建了表单验证系统。 这是我的目标用户仅当字段不为空时才打印@NotBlank消息

public class User{ 

    @NotEmpty 
    @NotBlank 
    @Size(min=3,max=20) 
    private String name;  
..... 
} 

到目前为止,如果您不填写“姓名”字段中得到3个消息:

  1. 不能为空
  2. 不能为空
  3. 大小必须是3和20之间

有一种方法,例如,以获得消息2只是如果消息1是正没有发送?

我解释得更好:如果用户没有填写字段,我只是想打印消息“可能不是空的”。然后,如果用户用空格填充字段,我想打印该消息“可能不是空白”。 然后,如果该字段填充(然后不是空的)并且不包含空格(然后不是空白),我想打印大小消息。

有没有办法解决这个问题的注释或我必须创建我自己的验证器类?

我在网上看了一下,但没有找到解决办法,可能是因为很难解释Google要寻找什么。

回答

0

您可以创建自己的注释,并使用元约束@ReportAsSingleViolation。

看看这些网站

http://docs.jboss.org/hibernate/validator/4.0.1/reference/en/html/validator-customconstraints.html http://docs.jboss.org/hibernate/validator/4.0.1/reference/en-US/html/validator-customconstraints.html

所以,你的代码可能看起来

@ReportAsSingleViolation 
@NotEmpty 
@NotBlank 
@Length(min = 3, max = 20) 
public @interface CustomAnnotation { 

    public abstract String message() default "{customkey}"; 

    public abstract Class<?>[] groups() default {}; 

    public abstract Class<?>[] payload() default {}; 
} 
相关问题