SpringBoot中的表单校验
SpringBoot中的表单校验
一、添加依赖
请注意,不添加依赖编译不会报错,但是校验注解不会生效!
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
版本号需要与Spring Boot版本号对应
二、添加标记
在Controller的入参RequestBody前面加注解@Valid表明这里需要校验参数,并且在入参的最后添加一个ResultBinding对象,用来接受校验结果。如果添加了全局异常捕获也可以在其中处理校验异常,从而无需添加ResultBinding对象。
例:
@PostMapping("/add")
public Result<?> add(@RequestBody @Valid AddForm form, ResultBinding resultBinding){
if(resultBinding.hasErrors()){
// 处理异常
}
}
三、添加表单注解
表单类型有很多种,具体可参阅引入的依赖
常用的有以下几种
| 注解 | 适用类型 | 含义 |
|---|---|---|
| @NotNull | 适用于所有对象 | 用来做非空校验 |
| @NotBlank | String | 用来做空串校验 |
| @NotEmpty | String类、Collection、Map、数组 | 可以校验集合非空,字符串非空 |
| @Size(min=,max=) | String、Collection、数组 | 可以对字符串、数组、列表的大小做校验 |
| @Pattern | String | 对字符串做格式校验 |
| @Max | Integer | 对Integer做大小限制 |
| @Min | Integer | 对Integer做大小限制 |
| @DecimalMax | BigDecimal | 对BigDecimal做大小限制 |
| @DecimalMin | BigDecimal | 对BigDecimal做大小限制 |
| @Valid | JavaBean | 用来做循环校验 |

浙公网安备 33010602011771号