springmvc的数据校验
2015-08-08 15:45
489 查看
校验理解:
项目中,通常使用较多是前端的校验,比如页面中js校验。对于安全要求较高点建议在服务端进行校验。
服务端校验:
控制层conroller:校验页面请求的参数的合法性。在服务端控制层conroller校验,不区分客户端类型(浏览器、手机客户端、远程调用)
业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使用的参数。
持久层dao:一般是不校验的。
springmvc使用hibernate的校验框架validation(和hibernate没有任何关系)。
校验思路:
页面提交请求的参数,请求到controller方法中,使用validation进行校验。如果校验出错,将错误信息展示到页面。
具体需求:
商品修改,添加校验(校验商品名称长度,生产日期的非空校验),如果校验出错,在商品修改页面显示错误信息。
开发步骤:
1.导入数据校验的jar包
![](http://img.blog.csdn.net/20150808152508587?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.springmvc.xml中配置校验器
![](http://img.blog.csdn.net/20150808152803945?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4.在pojo中添加校验规则
![](http://img.blog.csdn.net/20150808153005697?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5.在CustomValidationMessages.properties配置校验错误信息:
![](http://img.blog.csdn.net/20150808153113720?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6.在handler中的修改提交中进行捕捉校验错误信息
//在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResult
bindingResult接收校验出错信息
//注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)
![](http://img.blog.csdn.net/20150808153703260?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
页面中显示错误信息
![](http://img.blog.csdn.net/20150808153853221?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
分组校验
1.定义一个接口
![](http://img.blog.csdn.net/20150808154213574?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.在pojo类中指定分组校验
![](http://img.blog.csdn.net/20150808154242599?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.在handler方法中指定
![](http://img.blog.csdn.net/20150808154312043?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
测试:
项目中,通常使用较多是前端的校验,比如页面中js校验。对于安全要求较高点建议在服务端进行校验。
服务端校验:
控制层conroller:校验页面请求的参数的合法性。在服务端控制层conroller校验,不区分客户端类型(浏览器、手机客户端、远程调用)
业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使用的参数。
持久层dao:一般是不校验的。
springmvc使用hibernate的校验框架validation(和hibernate没有任何关系)。
校验思路:
页面提交请求的参数,请求到controller方法中,使用validation进行校验。如果校验出错,将错误信息展示到页面。
具体需求:
商品修改,添加校验(校验商品名称长度,生产日期的非空校验),如果校验出错,在商品修改页面显示错误信息。
开发步骤:
1.导入数据校验的jar包
2.springmvc.xml中配置校验器
<!-- 校验器 --> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <!-- hibernate校验器--> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <!-- 指定校验使用的资源文件,在文件中配置校验错误信息,如果不指定则默认使用classpath下的ValidationMessages.properties --> <property name="validationMessageSource" ref="messageSource" /> </bean> <!-- 校验错误信息配置文件 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 资源文件名--> <property name="basenames"> <list> <value>classpath:CustomValidationMessages</value> </list> </property> <!-- 资源文件编码格式 --> <property name="fileEncodings" value="utf-8" /> <!-- 对资源文件内容缓存时间,单位秒 --> <property name="cacheSeconds" value="120" /> </bean>3.校验器注入到处理器适配器中springmvc.xml的配置
4.在pojo中添加校验规则
5.在CustomValidationMessages.properties配置校验错误信息:
6.在handler中的修改提交中进行捕捉校验错误信息
//在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResult
bindingResult接收校验出错信息
//注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)
页面中显示错误信息
分组校验
1.定义一个接口
2.在pojo类中指定分组校验
3.在handler方法中指定
测试:
相关文章推荐
- java运行内存结构
- Java--引用与指针
- Calendar日历类,Date类
- java里的分支语句--程序运行流程的分类(顺序结构,分支结构,循环结构)
- 什么是Java集合API?
- java之进程理解
- Java程序运行机制及运行过程
- 深入浅出Java回调机制
- JAVA String常见问题
- MyEclipse10 安装
- Java--装箱,拆箱
- Java--枚举
- java中使用MD5进行加密
- 关于Spring MVC中的表单标签库的使用
- Java注解教程:自定义注解示例,利用反射进行解析
- Spring-MVC jsp导入excel到数据库
- 黑马程序员---struts2学习笔记之八(ognl原理及使用)
- springmvc 集合类型绑定
- JAVA 注解的几大作用及使用方法详解
- 黑马程序员---struts2学习笔记之七(表单验证)