WebWork中返回INPUT的原因

开发 后端
本文介绍WebWork中workflow返回input的原因。

表面现象

在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这个接口了。

【编辑推荐】

  1. WebWork如何实现文件上传配置过程
  2. WebWork下载的实现
  3. 通过WebWork实现HelloWorld
  4. WebWork的执行流程 
  5. Tapestry5的性能改进浅析
责任编辑:雪峰 来源: JavaEye博客
相关推荐

2009-07-14 01:00:43

WebWorkActionConte

2009-07-08 10:30:57

WebWork

2009-07-08 09:55:51

WebWork下载

2009-07-20 13:29:13

xwork.xmlWebWork

2009-07-16 14:08:14

webwork配置

2009-07-14 15:52:00

WebWork文件下载

2009-07-14 17:34:53

Webwork配置

2009-07-14 16:08:41

WebWork学习

2009-07-16 16:01:54

WebWork敏捷开发

2009-07-14 14:04:36

WebWork框架

2009-07-08 10:11:30

WebWork

2009-07-10 11:02:17

WebWork参数配置

2009-07-16 16:51:56

WebWork验证机制

2009-07-16 16:08:30

WebWork Act

2009-07-14 12:47:07

WebWork工作方式

2009-07-09 16:22:12

WebWork配置

2009-07-16 16:27:26

Struts WebW

2009-07-16 14:58:03

WebWork安装WebWork配置

2009-07-14 14:41:33

Webwork与Spr

2009-07-10 12:00:27

点赞
收藏

51CTO技术栈公众号