@Valid 基本使用方法
1.判断方法
`@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 限制必须是一个过去的日期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(日期类型)比当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email`
2.配合代码
// 首先在类中定义判定规则
@ApiModel(value = "认证登录表单", description = "用户登录时需要提交的表单信息")
public class AuthRequestBody implements Serializable {
@NotBlank(message = "用户名不能为空")
@ApiModelProperty(value="用户名",name="username",example="ghadmin")
private String username;
@NotBlank(message = "密码不能为空")
@ApiModelProperty(value="密码",name="password",example="123")
private String password;
}
// 其次,在接口参数中使用@Valid 进行判断
public AuthResult getToken(
@Valid
@ApiParam(value = "用户登录需提交的数据(JSON)", required = true)
@RequestBody AuthRequestBody authRequestBody,
BindingResult bindingResult
){
//验证是否有错,如果有错就输出错误信息
if(bindingResult.hasErrors()){
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
。。。此处省略
}
基本数据类型和string类型,不能使用@notempty 会报错
基本类型用@notnull
string 用@notblank