引入验证依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency> POST参数验证
User实体
public class User {
@NotNull(message = "id 不能空")
@Min(value = 0,message = "id 不小于0")
private int id;
@NotNull(message = "name 不能为空")
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RequestMapping(value = "/save",method = RequestMethod.POST)
public String save(@Validated User user,BindingResult bindingResult){
paramError(bindingResult);
return "save"+user.getName();
}
public void paramError(BindingResult bindingResult){
if (bindingResult.hasErrors()) {
String error = bindingResult.getFieldError().getDefaultMessage();
throw new RuntimeException(error);
}
} GET参数验证@RequestParam(value = "id",defaultValue = "0") int id
类上加上注解@Validated
然后使用POST相同的验证方法
public String show(@Min(value = 1,message = "不能小于1") int id){
return "show";
} 这里我们主要介绍在springboot中的几种参数校验方式。常用的用于参数校验的注解如下:
@AssertFalse 所注解的元素必须是Boolean类型,且值为false
@AssertTrue 所注解的元素必须是Boolean类型,且值为true
@DecimalMax 所注解的元素必须是数字,且值小于等于给定的值
@DecimalMin 所注解的元素必须是数字,且值大于等于给定的值
@Digits 所注解的元素必须是数字,且值必须是指定的位数
@Future 所注解的元素必须是将来某个日期
@Max 所注解的元素必须是数字,且值小于等于给定的值
@Min 所注解的元素必须是数字,且值小于等于给定的值
@Range 所注解的元素需在指定范围区间内
@NotNull 所注解的元素值不能为null
@NotBlank 所注解的元素值有内容
@Null 所注解的元素值为null
@Past 所注解的元素必须是某个过去的日期
@PastOrPresent 所注解的元素必须是过去某个或现在日期
@Pattern 所注解的元素必须满足给定的正则表达式
@Size 所注解的元素必须是String、集合或数组,且长度大小需保证在给定范围之内
@Email 所注解的元素需满足Email格式