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

struts2 拦截器问题,求教!~~~
struts2.xml:
XML code

 <package name="order" extends="authInterceptor" namespace="/order">


authInterceptor.xml:
XML code

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="authInterceptor" extends="base-struts-json">
        <!-- 自定义拦截器,实现用户校验 -->
        <interceptors>
            <interceptor name="authInterceptor" class="cn.sccl.web.action.usercenter.AuthInterceptor"></interceptor>
            <interceptor-stack name="mydefaultStack">
                <interceptor-ref name="authInterceptor"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <default-interceptor-ref name="mydefaultStack"/>
    </package>
</struts>


base-struts-json.xml:
XML code

<struts>

    <include file="struts-plugin.xml" />

    <package name="base-struts-json" extends="menu">
        
        <!-- 全局逻辑视图 -->
        <global-results>
            <result name="relogin">/WEB-INF/relogin.jsp</result>
            <result name="error_validate">/WEB-INF/jsp/usercenter/user_validate.jsp</result>
            <result name="sysException">/common/exception/sysexception.jsp</result>
            <result name="exception">/common/exception/abnormalTip.jsp</result>            
        </global-results>

        <!-- 自定义异常 -->
        <global-exception-mappings>
            <exception-mapping exception="cn.sccl.common.exception.SystemException" result="sysException" />
            <exception-mapping exception="java.lang.Exception" result="exception" />
        </global-exception-mappings>        
    </package>

</struts>


menu.xml:
XML code

<struts>
    <package name="menu" extends="json-default">
        <!-- 自定义拦截器,快速导航 -->
        <interceptors>
            <interceptor name="menu" class="cn.sccl.web.action.usercenter.menuInterceptor"></interceptor>
            <interceptor-stack name="mydefaultStack">
                <interceptor-ref name="menu"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <default-interceptor-ref name="mydefaultStack"/>
    </package>
</struts>



以上就是拦截器之间的关系:order包继承authInterceptor包,authInterceptor包继承base-struts-json,base-struts-json继承menu,现在我的问题是,order包继承了authInterceptor,这个是执行了的,但是为什么menu没有执行?求教~~~

------解决方案--------------------
在struts配置文件中只能有一