/** Validate that the annotated string isnot {@code null} or empty. The difference to {@code NotEmpty}is that trailing whitespaces are getting ignored. @author Hardy Ferentschik
***/@Documented@Constraint(validatedBy = { })@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR,PARAMETER })@Retention(RUNTIME)@ReportAsSingleViolation@NotNullpublic @interfaceNotBlank {Stringmessage()default"{org.hibernate.validator.constraints.NotBlank.message}";}
注意:@NotBlank用于String类型。
“The difference to {@code NotEmpty} is that trailingwhitespaces are getting ignored.” –> 和{@code NotEmpty}不同的是,尾部空格被忽略,也就是说,纯空格的String也是不符合规则的。所以才会说@NotBlank用于String,只能作用在String上,不能为null,而且调用trim()后,长度必须大于0。
("test") 即:必须有实际字符。
3. @NotNull
/*** The annotated element must not be {@code null}. Accepts any type. @author Emmanuel Bernard **/@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })@Retention(RUNTIME)@Documented@Constraint(validatedBy = { })public @interfaceNotNull {Stringmessage()default"{javax.validation.constraints.NotNull.message}"; Class<?>[] groups()default { };}
这个就很好理解了,不能为null,但可以为empty。
examples:
1.String name = null;@NotNull:false@NotEmpty:false@NotBlank:false2.String name = "";@NotNull:true@NotEmpty:false@NotBlank:false3.String name = " ";@NotNull:true@NotEmpty:true@NotBlank:false4.String name = "Great answer!";@NotNull:true@NotEmpty:true@NotBlank:true
附上一个使用例子:
@NotBlank(message ="startTime must not be null")privateString startTime;@NotBlank(message ="endTime must not be null")privateString endTime;@NotNull(message ="areaType must not be null")privateInteger areaType;@NotBlank(message ="userId must not be null")privateString userId;