欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WebWork之--action chain无法共享值栈内容错误排查

程序员文章站 2022-07-02 13:26:11
...

今天犯了一个低级错误,action配置如下,经多方排查,最终发现是拦截器配置问题。一般默认设置为defaultStack,但是我的这个package中默认拦截栈是basicStack,但是basicStack中不包含chain interceptor,所以导致两个action不能共享值栈内容。

action配置如下:

  1. <action name="actionName" class="className">
        <result name="success" type="chain">chainActionName</result>
    </action>
     

默认拦截器配置:

<default-interceptor-ref name="basicStack"/> 错误,该拦截栈中不包含chain interceptor

<default-interceptor-ref name="defaultStack"/> 正确,该拦截栈中包含chain interceptor

 

结合以前使用chain interceptor的经验,总结了action chain无法共享值栈的两个检查点

 

检查点一:变量getter/setter方法

如果两个action不能正常共享值栈内容,很可能要共享的变量在前一个action中未实现getter方法或后一个action中未实现setter方法。『^_^,我理解的是这两种操作都会导致你的变量无需和值栈交互』

检查点二:拦截器配置

action chain是依赖于chain interceptor的,一是检查你的Action的拦截器配置,如果无具体配置,可检查默认配置。