日期:2014-05-20  浏览次数:20749 次

struts2 拦截器问题
XML code

    <package name="course-setting" extends="struts-default">
        <!-- 基于paramsPrepareParamsStack,
            增加store interceptor保证actionMessage在redirect后不会丢失 -->
        <interceptors>
            <interceptor-stack name="crudStack">
                <interceptor-ref name="store">
                    <param name="operationMode">AUTOMATIC</param>
                </interceptor-ref>
                <interceptor-ref name="paramsPrepareParamsStack" />
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="crudStack" />

        <action name="course" class="courseAction">
            <result name="success">/jsp/course/course.jsp</result>
            <result name="reload" type="redirect">course.action</result>
        </action>
    </package>



Java code

    public String execute() throws Exception {
        return SUCCESS;
    }

    public String save() throws Exception {
        addActionMessage("课程保存成功");
        return RELOAD;
    }



以上代码保证在redirect后actionmessage中的信息依然存在, 不过在我直接访问course.action时actionmessage还是存在的.
如果我连续访问save()方法, 此时actionmessage中的信息就会根据访问次数的增加而增加...

我想直接访问course.action时actionmessage清除, 而访问save()时才会添加actionmessage.

求解决办法, 使用convention插件不会出现此问题, 但项目中用的是2.0.14版本. 还不支持convention...


------解决方案--------------------
探讨
XML code


<package name="course-setting" extends="struts-default">
<!-- 基于paramsPrepareParamsStack,
增加store interceptor保证actionMessage在redirect后不会丢失 -->
<interce……

------解决方案--------------------
chain