一、为什么需要服务端数据校验
最早的校验,就是服务端校验。早期的网站,用户输入一个邮箱地址,校验邮箱地址需要将地址发送到服务端,服务端进行校验,校验成功后,给前端一个响应。有了JavaScript,校验工作可以放在前端去执行。那么为什么还需要服务端校验呢?因为前端传来的数据不可信。前端很容易获取到后端的数据接口,如果有人绕过页面,就会出现非法数据,所以服务端也要数据校验。
二、普通校验
SpringMVC本身是没有校验功能的,他需要使用Hibernate的校验框架去进行校验,Hibernate的校验框架和orm没有关系
步骤
1.引入hibernate相关的依赖
2.在SpringMVC的配置文件中引入验证框架
<!--配置Hibernate-validator验证框架-->
<bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" id="validatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
<property name="validationMessageSource" ref="bundleMessageSource"/>
</bean>
<!--添加Hibernate验证框架的相关属性信息-->
<bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" id="bundleMessageSource">
<property name="fileEncodings" value="utf-8"/>
<property name="cacheSeconds" value="120"/>
</bean>
3.bean对象中设置验证规则(加注解)
4.在Controller中设置校验
三、分组校验
为什么要使用分组校验
因为一个对象有多个属性,而不同的controller校验的需求是不一样,必须controller1只需要校验对象的账号是否为空就可以了,而controller2不仅仅校验账号是否为空,还需要校验手机号必须不能为空,这是分组校验就能解决这个问题