struts2中的范围拦截器

时间:2011-12-09 06:05:40

标签: struts2 interceptor

是否有任何示例代码可以在Struts2中看到范围拦截器的使用?我想将一个参数从一个动作传递给另一个动作(通过struts.xml配置)&想使用范围拦截器。

由于我是Struts 2的新手,任何人都可以提供使用范围拦截器的样本吗?

1 个答案:

答案 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并在第二次操作中从会话中获取对象