这个拦截器可以把ValueStack中除实现了Unchainable接口以外的所有对象全都复制到当前正在执行的Action。拦截器的可选参数includes和excludes可以用来控制哪些参数可以被复制以及这些参数怎样被复制。includes 或 excludes 只能同时指定一个。如果两个都指定效果就等于没有指定。更多信息查看javadoc中的{@link OgnlUtil#copy(Object, Object, java.util.Map, java.util.Collection, java.util.Collection)}
。
需要注意的一点是如果ValueStack中没有任何对象,这个拦截器不做任何事。这就意味两点:一、你可以把它应用于任何Action而不必担心产生负面影响。二、你必须在调用一个actioin之前确保在stack中有要传递的值。最常见的使用方式是和 chain 结果类型一起使用,这样就可以实现action chaining的效果了。
参数
- excludes (optional) - 不需要复制的参数,其他的都复制
- includes (optional) - 一定要复制的参数,其他的都不复制
扩展
无
例子
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref name="basicStack"/>
<result name="success" type="chain">otherAction</result>
</action>
<action name="otherAction" class="com.examples.OtherAction">
<interceptor-ref name="chain"/>
<interceptor-ref name="basicStack"/>
<result name="success">good_result.ftl</result>
</action>