首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

webwork中workflow回来input的原因之一

2012-10-31 
webwork中workflow返回input的原因之一表面现象:当一个Action中既没有重写ActionSupport中的validate方法,

webwork中workflow返回input的原因之一

表面现象:
当一个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

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

热点排行