解决方案 »

  1.   

    原因找到了<global-results>属于是 <package>的子标签,仅作用于该<package>中的*.action,不作用于input进来的struts的<package>内的其他action,因此会报No result defined for action XXX and result XXX错误,如果添加
    <result name="webAppTologin" type="redirect">/pages/webApp/index.jsp</result>就正常了第二个struts可以重新设置全局变量 <package name="webapp" extends="json-default">

       <!-- 配置自定义拦截器LoginedCheckInterceptor -->
            <interceptors>
                <interceptor name="webAppLoginedCheck" class="com.interceptor.WebAppLoginedCheckInterceptor"/>
                 <interceptor-stack name="webAppStack">
                    <interceptor-ref name="webAppLoginedCheck" />
                    <interceptor-ref name="defaultStack" />
                </interceptor-stack>
            </interceptors> 
            <global-results>
                <!-- 定义名为exception的全局result -->
                 <result name="exception">/exception.jsp</result>
                 <result name="webAppTologin" type="redirect">/pages/webApp/unlogin.jsp</result>
            </global-results>
             <!-- 定义全局异常映射-->
            <global-exception-mappings>  
                <!-- 捕捉到Exception异常(所有异常)时跳转到exception所命名的视图上   -->
                <exception-mapping exception="java.lang.Exception" result="exception"/>
            </global-exception-mappings> 

       <action name="homeMenuWebApp" class="webAppAction" method="homeMenuWebApp">
       <result name="success" type="json">
        <param name="root">homeMenuUrlList</param>
    </result>
    <!-- 
    <result name="webAppTologin" type="redirect">/pages/webApp/index.jsp</result>
     -->
    <interceptor-ref name="webAppStack" />
    </action>
        </package>
      

  2.   

    由于我的第二个struts需要用到的属性基本与主struts的相同,这时候如果每个属性都要重写则不好,这时可以在导入的struts的package 中的设置继承主struts,只要下面一句就可以了
    <package name="webapp" extends="struts2">