spring mvc 中使用spring的validator
来源:互联网 发布:淘宝网广场舞蹈鞋 编辑:程序博客网 时间:2024/05/21 11:19
转载地址:http://blog.csdn.net/shuwei003/article/details/7213662
前面完成了mvc基本框架,现在学习一下对表单输入的验证:
目前我所知道的带表单验证功能的是一个协议JSR303,包括EJP、hibernate、spring和apache都有类似库
1.使用spring自带的Validator:
<1>建立一个"Validator" (如果验证的类中的属性是一个需要验证的类,可以将它的validator嵌入到这里,详见reference)
<2>使用spring mvc3的validator需要在xxx-servlet.xml中做一行配置
<context:component-scan base-package="com.smvc"/>
@Valid需要validation-api-xxxx.jar这个包只是一个协议,还需要加一个实现包,hibernate可以作为实现包hibernate-validator-xxxx.jar否则报:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is javax.validation.ValidationException: Unable to find a default provider
可以实现验证了,但是报错No message found under code 'name.empty.student.name' for locale 'zh_CN'.
应该是跟错误消息提示的本地化有关系
<3>建立信息提示文档,本地环境是中文的需要在classpath下建立一个messages_zh_CN.properties,这个可以在配置文件中xml设置
<4>在xml做出如下配置
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
</bean>
<5>ValidationUtils.rejectIfEmpty(e, "name", "name.empty");当name属性为空或者空格时候,name的错误提示为配置文件中name.empty.name,也就是在第三个参数后面加上.属性名
Errors的rejectValue(参数1,参数2).参数1是存储在errors中的名字的键值,参数2是messages_zh_CN.properties的键值,如
e.reject("age", "young");则会到messages_zh_CN.properties中查找young.age作为提示语,如果没有,则会使用young作为关键字查找,如果还是没有,则会找到age.int作为键值
<6>messages_zh_CN.properties中的汉字需要使用unicode码,否则会显示乱码,转化的方法是:
运行native2ascii,然后输入需要转换的汉字,就会显示相应的unicode码,
对于类型不匹配的异常,会使用typeMismatch.student.age这样格式的信息键值
需要搞清的概念field,errorcode,defaultMessage
使用spring提供的验证处理比较简单,而且功能也比较强大
StudentValidator.Java
StudentController.java
study-servlet.xml
messages_zh_CN.properties
2012-02-14编辑
使用spring提供的org.springframework.validation.Validator的时候,在注册的验证器的时候注意写明这个验证器是是为哪个对象提供验证的,否则默认为所有@ModelAttribute提供验证,如果不支持(supports方法)就会报错误(类似org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Invalid target for Validator [com.smvc.annonation.validator.StudentValidator@2585e]: com.smvc.annonation.utils.ResultFilter@c378f6),但是并不会对没有标注为@Valid的@ModelAttribute进行真正的验证。
如果没有标注@Valid就不会进行任何验证
- spring mvc 中使用spring的validator
- spring mvc 中使用spring的validator
- spring mvc 中使用spring的validator
- spring mvc 中使用spring的validator
- spring MVC中基于hibernate validator的form表单验证
- spring MVC中基于hibernate validator的form表单验证
- spring MVC中基于hibernate validator的form表单验证
- Spring MVC 自定义Validator
- Hibernate validator使用和自定义validator及整合Spring MVC
- Hibernate validator使用和自定义validator及整合Spring MVC
- spring-mvc的数据验证Validator
- Spring MVC Custom Validator Example
- Spring MVC 整合 hibernate-validator
- Spring中使用Validator进行数据验证
- 11月30在spring mvc中使用Validator框架和文件上传
- spring使用validator
- Spring MVC使用MultiActionController搭配Validator校验表单
- 关于Spring中Commons Validator的使用说明及MVC验证的配置步骤
- 《数据结构和算法》之字符串BF算法
- (45)Air Band OpenCV2.4.13_输入视频和相似性度量
- lightoj 1269
- 关于spring mvc拦截器拦截js文件等导致无法正常使用问题的解决
- hiho#1478 : 水陆距离 (BFS)
- spring mvc 中使用spring的validator
- 欢迎使用CSDN-markdown编辑器
- Android网络请求心路历程
- loadrunner 脚本录制-录制选项设置HTML-based URL-based Script
- 空控制器处理
- JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )
- 使用idea创建gradle-web项目
- spring+springMVC+Hibernate全注解XML配置文件
- doc下运行net start MySQL启动不了服务