spring 注解方式下使用commons-validator 验证表单

原文: [url]http://www.programgo.com/article/12411299733/[/url]
参考:
[color=red]spring(3) mvc 注解验证springmodules common validator (注解验证) [/color][url]http://blog.csdn.net/zheng963/article/details/48681057[/url]
实战springmodules common validator [url]http://blog.csdn.net/sunxing007/article/details/4660262[/url]

1.使用spring-modules-validation.jar ,
2.并且引入commons-validator.jar及相关的包,
3.一个标准的validator-rules.xml文件,和自定义的validation.xml文件,
4. 在*-servlet.xml中加入:
    <!-- 表单验证管理 -->
<bean id="beanValidator"
class="org.springmodules.validation.commons.DefaultBeanValidator">
<property name="validatorFactory" ref="validatorFactory" />
</bean>
<bean id="validatorFactory"
class="org.springmodules.validation.commons.DefaultValidatorFactory">
<property name="validationConfigLocations">
<list>
<value>WEB-INF/validator-rules.xml</value>
<value>WEB-INF/validation.xml</value>
</list>
</property>
</bean>

5. 在验证表单的处理参数中加入:
@ModelAttribute("user") User user, BindingResult bindingResult

6. 在处理提交内容前加入:
validator.validate(jituanmk, bindingResult);


表单验证的例子:
首先配置好上述的1-4的内容,然后在表单的处理方法中,作如下处理:
    @RequestMapping("/userUpdate")
public String processJituanmkUpdate(@ModelAttribute("user") User user, BindingResult bindingResult, //此处加入验证对象,注意这两个参数必须紧挨着,以方便spring框架绑定
Model model ) throws IOException {
validator.validate(user, bindingResult);//使用validator.xml验证表单对象
if (bindingResult.hasErrors()) { //发生错误,把错误信息输出回表单页
logger.error(bindingResult.getFieldErrors());
model.addAttribute("errors", bindingResult.getFieldErrors());
return "userModify";
}
... //没有错误,继续处理


validaton.xml的编写与在struts中一致,需要注意的是:
<form name="user"> 中的name值是首字母小写的验证对象的类名。这个如果写错了,当然就得不到正确的验证结果。
spring-2.5+springmodules-0.9 ,测试通过。

其他验证方案,
1.可以使用@InitBinder注解绑定数据,参考资料2中详述,在spring发布包中的samples中的petclinic。
2.可以使用实现spring提供的Validator接口来处理。
或许还有其他方案,不过感觉对于平常的应用,使用validator.xml是最方便的,毕竟至少不需要写那么多用于验证的代码。


参考:
1.[url]http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/[/url]
2.[url]http://www.infoq.com/cn/articles/spring-2.5-ii-spring-mvc[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值