本节是本文的最后一节,主要介绍本项目的数据验证。类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文件:ValidationMess