Spring MVC —— 参数校验

做权限项目校验参数

Posted by czkuo on March 20, 2019

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中单个参数校验

  1. 实体类校验

校验实体参数 **校验实体参数**

在处理方法的实体参数前标注@Validated ,并且后面紧跟一个Errors类型的参数