首页 > 其他 > 详细

继承ActionSupport,返回INPUT的原因

时间:2014-03-12 03:22:53      阅读:870      评论:0      收藏:0      [点我收藏+]

http://developer.51cto.com/art/200907/134757.htm

 

表面现象:

 

在WebWork中,当一个Action中既没有重写ActionSupport中的validate方法,也没有相关的validata.xml文件,并且action中并没有INPUT的出口,但是最终LOG里面却告诉我们这个Action返回INPUT了。这到底是怎么一回事呢?

 

了解下代码:

 

WebWork中,如果有添加workflow这个interceptor,那么ActionA chain到 ActionB的时候,如果ActionA中有调用addActionError这个方法,然后chain到ActionB,这时候ActionB不会做任何事情,就直接返回INPUT了。

 

原因:

 

在workflow这个interceptor会对继承ValidationAware这个接口的Action,调用hasErrors()这个方法,如果这个方法返回true,那么就直接返回INPUT,而不再往后面的action去执行了。

 

workflow interceptor的官方说明http://www.opensymphony.com/webwork/wikidocs/Workflow%20Interceptor.html

 

也许有的同学就会问了,在WebWork中,我就继承了ActionSupport方法啊,怎么会去验证hasErrors()这个方法呢?虽然你没继承,但是是不是还有谁偷偷干了这事呢?其实就在继承的ActionSupport这个父类里面继承了ValidationAware这个接口了。

继承ActionSupport,返回INPUT的原因,布布扣,bubuko.com

继承ActionSupport,返回INPUT的原因

原文:http://www.cnblogs.com/x_wukong/p/3594639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!