Spring字段校验的注解说明
限制
说明
限制只能为null
限制必须不为null
限制必须为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,也可以通过正则表达式和flag指定自定义的email格式
Hiberate Validator还支持以下注解
注解
功能说明
被注解的元素必须是电子邮箱地址
@Length
被注释的字符串大小必须在指定的范围内
@NotEmpty
注释的字符串必须非空
@Range
注释的元素必须在合适的范围内
Springboot代码示例
1.在实体类中使用Spring或者Hiberate校验注解
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 用户登录实体类
*/
@Data
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
@NotBlank(message = "密码不能为空")
@Size(max = 20, min = 6, message = "密码长度在6-20字符之间")
private String password;
}
2.在Controller中的请求方法参数里面加@Valid注解,否则实体类中校验注解无法生效
import com.example.demo.model.User;
import com.example.demo.util.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
* 用户登录控制器
*/
@RestController
@RequestMapping(value = "/user")
public class UserController {
/**
* 用户登录
* @param user
* @return
*/
@PostMapping(value = "/login")
public R login(@Valid @RequestBody User user){
System.out.println("登录成功!");
return R.ok(user);
}
}
Postman请求测试
看到这个返回结果我们就可以代码就成功了。