引入验证依赖包
<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格式