常用注解-带分组
/**
* 内容名称
*/
@NotBlank( message = "内容名称不能为空" , groups = Group01.class)
private String name;
自动验证
import org.springframework.validation.annotation.Validated;
@PostMapping( "/add" )
public R addContent( @RequestBody @Validated( ContentDetail.Group01.class) ContentDetail contentDetail) {
return R.ok( ) ;
}
手动验证
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
@PostMapping( "/add" )
public R addContent( @RequestBody @Validated( ContentDetail.Group01.class) ContentDetail contentDetail) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory( ) ;
Validator validator = factory.getValidator( ) ;
Set< ConstraintViolation< ContentDetail>> result = validator.validate( contentDetail, ContentDetail.Group01.class) ;
for ( ConstraintViolation< ContentDetail> constraintViolation : result) {
System.out.println( constraintViolation.getPropertyPath( ) + ":" + constraintViolation.getMessage( )) ;
return R.fail( constraintViolation.getMessage( )) ;
}
return R.ok( ) ;
}
常用注解
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min ( value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max ( value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin ( value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax ( value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size ( max, min) 被注释的元素的大小必须在指定的范围内
@Digits ( integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern ( value) 被注释的元素必须符合指定的正则表达式
@Email 被注释的元素必须是电子邮箱地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range 被注释的元素必须在合适的范围内