Spring MVC参数校验Validation使用
Web 应用都应该要求对输入数据和请求数据做数据校验,将异常和非法数据过滤掉,确保系统的健壮性。
数据校验分客户端校验和服务端校验,客户端校验主要在页面通过JavaScript来实现,过滤正常用户的误操作,仅做初步过滤;服务端校验是整个应用阻止非法数据的最后防线,客户端校验绝不能替代服务端的校验,客户端校验可以降低服务器的负载。
Validator检验框架
Spring 提供了自己的数据校验框架。Spring 在进行数据绑定时,可同时调用校验框架来完成数据校验的工作。
Spring 的校验框架在org.springframework.validation
包中,重要的接口和类如下:
- Validator:最重要的接口,里面有两个方法。
- Errors:存放错误信息的接口。
校验的结果必须是Errors
或是BindingResult
类型。 - ValidatorUtils:校验的工具类,提供了多个
Errors
对象保存错误的方法。 - LocalValidatorFactoryBean:该类实现了Spring的
Validator
接口,也实现了JSR 303
的Validator
接口,只要在 Spring 容器中定义一个LocalValidatorFactoryBean
,即可将其注入到需要数据校验的Bean
中。1
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<mvc:annotation-driven/>
会默认装配好一个LocalValidatorFactoryBean,实现开发中不需要手动配置。
Spring MVC提供的数据校验是通过硬编码完成的,实现开发推荐使用JSR 303
来进行数据校验。
Spring MVC参数校验Validation使用