关于参数校验
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于参数校验相关的知识,希望对你有一定的参考价值。
参考技术A 1.使用校验注解:
在Java中提供了一系列的校验方式,它这些校验方式在“javax.validation.constraints”包中,提供了如@Email,@NotNull等注解。
在非空处理方式上提供了@NotNull,@Blank和@NotEmpty
(1)@NotNull
The annotated element must not be null. Accepts any type.
注解元素禁止为null,能够接收任何类型
(2)@NotEmpty
the annotated element must not be null nor empty.
该注解修饰的字段不能为null或""
Supported types are:
支持以下几种类型
CharSequence (length of character sequence is evaluated)
字符序列(字符序列长度的计算)
Collection (collection size is evaluated)
集合长度的计算
Map (map size is evaluated)
map长度的计算
Array (array length is evaluated)
数组长度的计算
(3)@NotBlank
The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
该注解不能为null,并且至少包含一个非空白字符。接收字符序列。
JSR303常用注解: https://blog.csdn.net/w306026355/article/details/85094270
2:在请求方法中,使用校验注解@Valid,开启校验
3:在校验的Bean实体之后,紧跟一个BindResult,就可以获取到校验的结果。拿到校验的结果,就可以自定义的封装。
4.分组校验
一个实体极可能多个接口使用,在不同接口的业务规则中,同一个参数的校验也可能拥有不同的校验规则,此时就需要进行分组的校验.
4.1:建立分组标志
“javax.validation.constraints”包中的校验注解,都有一个属性为groups,groups的值为一个数组,我们可以在公共模块中建立空接口作为分组标志,如:AddGroup,EditGroup
使用方法示例:
4.2:在校验的接口中使用更精确的@Validated(xxx.class)注解来开启参数校验,取代原来的@Valid注解,标明分组
5.自定义校验注解以及校验器
https://www.bilibili.com/video/BV1np4y1C7Yf?p=70
以上是关于关于参数校验的主要内容,如果未能解决你的问题,请参考以下文章
关于spring mvc 请求参数校验使用中的坑 。 maven 生命周期,线程池杂识