原始类型参数
直接在控制器(或者其他Bean)上使用@Validated
注解。
@RestController
@RequestMapping("account")
@Validated
public class AccountController {
// ......
}
在参数前添加校验注解
@GetMapping("account")
public Result<AccountVO> getAccount(
@NotNull Long accountId
) {
// ......
}
表单对象参数
参数AddressForm
,添加@Valid
。
@PostMapping("/address/save")
public Object saveAddress(@Valid AddressForm addressForm) {
......
}
AddressForm
中添加注解
public class AddressForm {
private Integer id;
@NotBlank
private String name;
@NotBlank(message = "{mobile.not.blank}")
@Pattern(regexp = "^1[34578]\\d{9}$")
private String mobile;
......
}
注意:示例中{name.not.blank}为国际化配置。国际化需要在培训文件下自定义org/hibernate/validator/ValidationMessages.properties
。
Bean Validation中常用注解
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@NotBlank(message =) 验证字符串非null,且长度必须大于0
@NotEmpty 被注释的字符串、集合的必须非空
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
Hibernate Validator 常用注解
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内