以下验证是否表示该字段不能为空? (@Size注释)

时间:2013-06-27 13:26:19

标签: java validation spring-mvc

我的Spring MVC Form bean中有以下属性,使用javax.validation.constraints来验证表单bean,如下所示:

public class MyForm {
    @Size(min = 2, max = 50)
    private String postcode;

    // getter and setter for postcode.
}

我的问题是:@Size(min = 2)是否意味着该属性不能为null,因为它总是需要长度大于2.我之所以这样说是因为有{{1}如果我应该在上面的bean中使用它,那么这会使@NotNull约束成为冗余。

3 个答案:

答案 0 :(得分:16)

如果您查看注释文档尺寸http://docs.oracle.com/javaee/6/api/javax/validation/constraints/Size.html

您可以阅读“ null元素被视为有效。” 因此,您需要在字段顶部指定 @NotNull 您有两种选择:

@NotNull 
@Size(min = 2, max = 50)
private Integer age;

或者像Riccardo F.建议:

@NotNull @Min(13) @Max(110)
private Integer age;

答案 1 :(得分:1)

@NotNull 也用于文本字段,但您可以像

一样使用它们
@NotNull @Min(13) @Max(110)
private Integer age;

这意味着 age 不能为null,且必须是介于13和100之间的值

@NotNull
private Gender gender;

表示性别不能为空

答案 2 :(得分:1)

根据@Size

的文件
  

null元素被视为有效。

供参考 hibernate-validation 实际@Size实施包含:

  

org.hibernate.validator.constraints.impl.SizeValidator

无论如何指定@NotNull