是否有任何示例代码可以在Struts2中看到范围拦截器的使用?我想将一个参数从一个动作传递给另一个动作(通过struts.xml配置)&想使用范围拦截器。
由于我是Struts 2的新手,任何人都可以提供使用范围拦截器的样本吗?
答案 0 :(得分:2)
我相信Struts2文档中已经很好地描述了这一点。你需要做的就是
<action name="scopea" class="ScopeActionA">
<result name="success" type="dispatcher">/jsp/test.jsp</result>
<interceptor-ref name="basicStack"/>
<interceptor-ref name="scope">
<param name="key">funky</param>
<param name="session">person</param>
<param name="autoCreateSession">true</param>
</interceptor-ref>
</action>
<action name="scopeb" class="com.mevipro.test.action.ScopeActionB">
<result name="success" type="dispatcher">/jsp/test.jsp</result>
<interceptor-ref name="scope">
<param name="key">funky</param>
<param name="session">person</param>
<param name="autoCreateSession">true</param>
</interceptor-ref>
<interceptor-ref name="basicStack"/>
</action>
你需要注意的是,你在ActionA中有一个getter,在actionB中有一个类似的setter。此外,您应该使用一个关键参数来确保告诉Struts2哪个操作获取哪些对象
阅读此官方文档以获取详细信息 Struts2 Scope Interceptor
我只会在开发类似功能的向导时更喜欢Scope Interceptor,因为它会处理会话级锁定等其他事情。 如果这不是您的要求,还有其他方法可以传递参数,例如将对象放入Session并在第二次操作中从会话中获取对象