Spring MVC —— 参数校验
参数校验
简述
Spring MVC 的校验可以通过 hibernate-validator 框架来进行校验的,所以在了解 Spring MVC 是怎么进行参数校验之前,我们先了解一下 JSR303/JSR-349、hibernate-validator、Spring MVC 之间的关系。
- JSR303 是一个校验规范,JSR-349 是其的升级版本,添加了一些新特性,他们规定一些校验规范即校验注解,如@Null,@NotNull,@Pattern,他们位于javax.validation.constraints包下,只提供规范不提供实现。
- hibernate-validator 是对 JSR303/JSR-349 这两个规范的实现,并增加了一些其他校验注解,如@Email,@Length,@Range等等,他们位于org.hibernate.validator.constraints包下
引入依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.0.Final</version>
</dependency>
例如这样
<bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" id="validator" />
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor">
<property name="validator" ref="validator" />
</bean>
<mvc:annotation-driven validator="validator"/>
校验规则注解
有两种校验方式 1.实体类校验 2.rest中单个参数校验
- 实体类校验
校验实体参数
在处理方法的实体参数前标注@Validated ,并且后面紧跟一个Errors类型的参数