Struts2 Validation有两种方式:
第一种,实现Validateable接口,validate方法;一般我们Action extends ActionSupport,重写validate即可。
第二种,通过Annotation(好像在2.1版本后不推荐了,详见 http://struts.apache.org/2.x/docs/validation-annotation.html)或validation.xml配置方式实现。
实现机制是,默认拦截器中有个前置拦截器validation interceptor,会执行上面的验证,在拦截器栈的最后有个workflow拦截器,如果有验证错误的话,直接跳转到错误页面(默认是INPUT页面,也可以通过InputConfig Annotation配置),不执行Action的业务逻辑。
设计的想法是很好,但是目前有个问题就是(楼主也提到些),这两种方式只能对所有方法实现相同的validate。不能区分不同的方法,不同的验证。
目前我想到的一个折中的实现方式是,自己通过业务方法实现业务逻辑验证,把错误通过addActionError/addFieldError保存起来,直接跳转到错误界面,通过<actionerror></actionerror>和<fielderror></fielderror>标签显示错误信息。
大家觉得这方式怎样?有什么优劣?
分享到:
相关推荐
比较详细的struts2 validation资料
从http://wiki.javascud.org/display/ww2cndoc/Valida<br>tion 网站上收集的一些关于有关Struts2验证框架的资料,并将其做成电子书以方便查看,另外向朋友们推荐一个很好的学习Struts2的博客...相信对正在学习Struts2的...
列举了多种格式验证方法。如日期、字符、数字等
Struts2中Validation数据验证框架教程 struts2中validation框架_前台验证 struts2中validation框架_后台验证
NULL 博文链接:https://cyhcheng-gmail-com.iteye.com/blog/1450517
NULL 博文链接:https://coder-vince.iteye.com/blog/1155340
主要介绍了struts2 validation.xml 验证规则代码解析,具有一定借鉴价值,需要的朋友可以参考下
NULL 博文链接:https://lxh2002.iteye.com/blog/718662
Struts Validation框架浅尝,Struts Validation框架浅尝Struts Validation框架浅尝
Struts2提供了一些基于XWork Validation Framework的内建验证程序,它们大大简化了输入验证工作。 使用这些验证程序不需要编程,程序员只需要在一个XML文件里对验证程序应该如何工作做出声明就行了。需要声明的内容...
struts2中两种validation.xml的配置方式
Struts2中的validation_多国语言版 国际化+struts2数据校验.zip
struts的validation验证框架源码!
Struts2 form Validation
Jakarta Sturts:Manually Validating Input & Jakarta Sturts:Automatically Validating Input
Struts1.2中的validation验证框架的实现步骤
NULL 博文链接:https://yueguangyuan.iteye.com/blog/268000
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
javaee的Struts实验项目