WebWork之--action chain无法共享值栈内容错误排查
程序员文章站
2022-07-02 13:26:11
...
今天犯了一个低级错误,action配置如下,经多方排查,最终发现是拦截器配置问题。一般默认设置为defaultStack,但是我的这个package中默认拦截栈是basicStack,但是basicStack中不包含chain interceptor,所以导致两个action不能共享值栈内容。
action配置如下:
-
<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的拦截器配置,如果无具体配置,可检查默认配置。