Spring MVC参数校验Validation使用

  Web 应用都应该要求对输入数据和请求数据做数据校验,将异常和非法数据过滤掉,确保系统的健壮性。

  数据校验分客户端校验和服务端校验,客户端校验主要在页面通过JavaScript来实现,过滤正常用户的误操作,仅做初步过滤;服务端校验是整个应用阻止非法数据的最后防线,客户端校验绝不能替代服务端的校验,客户端校验可以降低服务器的负载。

Validator检验框架

Spring 提供了自己的数据校验框架。Spring 在进行数据绑定时,可同时调用校验框架来完成数据校验的工作。

Spring 的校验框架在org.springframework.validation包中,重要的接口和类如下:

  1. Validator:最重要的接口,里面有两个方法。
  2. Errors:存放错误信息的接口。
    校验的结果必须是Errors或是BindingResult类型。
  3. ValidatorUtils:校验的工具类,提供了多个Errors对象保存错误的方法。
  4. LocalValidatorFactoryBean:该类实现了SpringValidator接口,也实现了JSR 303Validator接口,只要在 Spring 容器中定义一个 LocalValidatorFactoryBean,即可将其注入到需要数据校验的Bean中。
    1
    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />

<mvc:annotation-driven/>会默认装配好一个LocalValidatorFactoryBean,实现开发中不需要手动配置。

Spring MVC提供的数据校验是通过硬编码完成的,实现开发推荐使用JSR 303来进行数据校验。

作者

光星

发布于

2018-02-12

更新于

2022-06-17

许可协议

评论