填填写表格时,前端和后端应进行验证,前端通常是非空的,是否符合正则表达式验证
这里主要讲的是后端验证注释JRS303:
1.这个包下一般都有验证注释
普通校验:
2.校验注释放在两个地方:
i)controller添加输入入口(保存和修改接口):
ii)Entity类对象的具体属性名称:
message错误信息可以自定义,否则是源代码中的默认错误信息
启动后,如果不符合填写要求,会有相应的响应信息:
3.上述信息形式不是我们需要的形式,而是Rjson形式:
则在controller添加参数参数可以截获错误信息
每一个都要这样controller这样的代码填写在所需的接口中,导致代码冗余
配置需要统一验证
5.统一验证:
1)创建一个Exception在里面创建一个包java类:
i)@RestControllerAdvice相当于注射后两个灰色注释
ii)@ExceptionHandler分配错误的验证类型
iii)这里BindingResult还派上用场
iv)后面的BizCodeEnume是自定义配置类,错误信息包括:
该java类别中还有一种错误的捕捉方法,用于不符合准确匹配的捕捉错误方法:
2)没有BindingResult
6.分组校验
1)先解释释各种验证注释:
i)@NotNull、@NotEmpty、@NotBlank的区别:
@NotNull可与所有类型相匹配
@NotEmpty只能配置在
@NotBlank这意味着必须有一个非空格字符@NotNull有空格字符
ii)@Pattern:字符校准码,regexp表示正则表达式
iii)@URL:
2)注解各校验分组:
valid变为validated,且没有BindingResult
改Entity属性名上的验证注释
showStatus属性名多一个
默认情况下,没有指定分组的校准:@NotBlank,分组验证(@Validated({AddGroup.class}))不生效
7.定制校验注释
要引入包:
参照校验注释的源代码定制了校验注释类: