[Note]Spring MVC、hibernate validator和i18n(四)

来源:互联网 发布:女士秋季新款服装淘宝 编辑:程序博客网 时间:2024/06/11 07:39

本节是本文的最后一节,主要介绍本项目的数据验证。类Account的各字段上的标记@NotNull @Size @Future是JSR-250规定的验证标记,本项目使用的validator是hibernate validator,hibernate validator完整地支持JSR-250,是Spring的数据验证模块中最佳选择。在本项目中,creatForm.jsp提交form后会触发AccountController的方法public String create(@Valid Account account, BindingResult result)中,其中的@Valid标记表示在传入的account对象之前要对其进行验证,如果account对象中的字段违反了相应标记的限制,产生的error就会随着相应的error code以及被验证的对象信息加入到BindingResult对象中,public String create(@Valid Account account, BindingResult result)方法体内对BindingResult对象进行判断,只要有error存在,就返回“account/createForm”,同时把BindingResult对象也绑定到response中,这一次creatForm.jsp页面在一次被解析,与违反规则的account字段绑定的form:errors就会显示错误信息,同时form:label也会使用cssErrorClass中定义的样式。

hibernate validator也提供了错误信息的i18n功能,在hibernate-validator.jar库的org/hibernate/validator目录下有三个properties文件:ValidationMessages.properties,ValidationMessages_de.properties,ValidationMessages_fr.properties,分别定义了错误信息的英语、德语和法语版本,在相应的local环境下就会显示。将这三个文件取出放入本项目的classpath中,即/WEB-INF/classes文件夹下,再加入对应其他local的properties文件,如ValidationMessages_en.properties,ValidationMessages_zh.properties,ValidationMessages_es.properties等。例如本项目的ValidationMessages_zh.properties的内容为

由于本项目只使用了@NotNull @Size @Future,所以只对javax.validation.constraints.Future.message,javax.validation.constraints.NotNull.message,javax.validation.constraints.Size.message进行了修改,再一次说明该文件中的UTF-8码是因为我使用的是没有装中文语言包的ubuntu9.10开发导致的中文编码。

 

本文说明的SpringMVCBasic项目的源代码从http://download.csdn.net/source/2179669这里下载。

原创粉丝点击