BindingResult介绍
BindingResult 是 Spring 框架中用于处理表单验证结果的一个接口,常用于在处理表单提交时捕获和处理验证错误。当你在 Spring MVC 控制器方法中使用 @Valid 注解对表单对象进行验证时,可以通过 BindingResult 接收验证结果并处理错误。
常用的注解
@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null
@AssertTrue 该字段只能为true
@AssertFalse 该字段的值只能为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin("value") 被注释的元素必须是一个数字,验证小数的最小值
@DecimalMax("value") 被注释的元素必须是一个数字,验证小数的最大值
@Size(max,min) 查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
@Digits(integer,fraction) 检查是否是一种数字的整数、分数,小数位数的数字
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regexp = "[abc]") 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length(max=5,min=1,message="长度在1~5") 检查所属的字段的长度是否在min和max之间,只能用于字符串
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在合适的范围内
@CreditCardNumber 对信用卡号进行一个大致的验证
@NotBlank 不能为空,检查时会将空格忽略
@NotEmpty 不能为空,这里的空是指空字符串
校验未通过信息
判断是否有错误信息并且获取到错误信息
hasErrors():判断是否存在校验错误。
getAllErrors():获取所有的校验错误信息。
getFieldErrors():获取字段级别的校验错误信息。
getGlobalErrors():获取全局级别的校验错误信息。
reject():手动添加校验错误。
测试开发Demo
@Valid
@Validated两个注解放到实体类前面,来保证实体类生效。
public class TestController {
@PostMapping("/test")
@ApiOperation(value = "测试实体", notes = "")
public void test(@RequestBody @Valid TestEntity test,BindingResult bindingResult) {
System.out.println(test.toString());
if (bindingResult.hasErrors()) {
bindingResult.getFieeldErrors()..getDefaultMessage();
throw new 自定义Exception("错误提示码",bindingResult.getFieldError().getDefaultMessage());
}
}
}