今天使用到Spring 验证的模块(Validator),稍微研究了一下,觉得不仅仅是书上讲的那么简单,在此总结下
介绍下Spring Validator 接口必须实现的方法
1、public boolean support(Class clazz);这个方法是要验证提交表单时对应的那个缓存数据的类(通常由Hibernate生成),这通常由代码编写者设定,一般不会有错
2、public void validate(Object target, Errors errors);注意,这里返回的反而不是boolean,这是因为Spring 在处理无法提交的表单使用的机制是例外机制,他会送出一个Errors,包装了对应的信息。通常使用的方法是由类ValidationUtils 提供的,该类提供了验证的几个方法,并包装了错误。这里包装后的错误会出现在Controller 中的BindException
中,可以用getMessage() 方法来得到信息,不过这个信息很原始,可以利用适当的字符串处理机制处理一下。
其实这里有一个更好的方法,就是混合使用<spring:bind>标签,这个标签可以把对应提交的form 对象和表单中相关名称的字段绑定,而且可以通过它的子属性打印出错误信息例如你可以嵌入<c:out value="status.errorMessage" />这样就会把该字段验证时失败的信息显示出来,非常容易和好用,建议大家可以使用
当Validator 接口实现完毕后,要在配置servlet 的xml 文件中将对应的Controller 的validator 属性设置为你的Validator 接口实现类,这样,系统就会自动对你需要验证的模块进行验证了。
如果你还想锦上添花的话,不但可以使用Spring MVC 的验证机制,还可以用JavaScript 写一段富客户端的验证机制
嗯,差不多了,就总结到此吧