我的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
约束成为冗余。
答案 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
。