<?xml version="1.0" encoding="UTF-8" ?>


<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">


<struts>


<constant name="struts.i18n.encoding" value="UTF-8" />


<constant name="struts.custom.i18n.resources" value="globalMessages" />


<constant name="struts.multipart.maxSize" value="1073741824" />


<constant name="struts.enable.DynamicMethodInvocation" value="false" />


<constant name="struts.enable.SlashesInActionNames" value="true" />




<package name="common" extends="struts-default" namespace="/common">


<interceptors>


<interceptor name="debugInterceptor" class="com.ifeng.crm.common.DebugInterceptor" />

<!-- 定义权限拦截器 -->


<interceptor name="sessionInterceptor" class="com.ifeng.crm.common.SessionInterceptor" />

<!-- 定义权限拦截器 -->



           <!-- 定义拦截器栈,所谓拦截器栈,是指由一个或多个拦截器组成 --> 


<interceptor-stack name="sessionStack">


<interceptor-ref name="sessionInterceptor" />


<interceptor-ref name="debugInterceptor" />


<interceptor-ref name="defaultStack" />

 <!-- struts2 提供的拦截器栈,包含了struts2的很多核心拦截器 -->


</interceptor-stack>



<interceptor-stack name="fileUploadStack">


<interceptor-ref name="sessionStack" />


<interceptor-ref name="debugInterceptor" />


<interceptor-ref name="fileUploadStack" />


<interceptor-ref name="defaultStack" />


</interceptor-stack>




<interceptor-stack name="actionMessageStack">


<interceptor-ref name="sessionInterceptor" />


<interceptor-ref name="debugInterceptor" />


<interceptor-ref name="store">


<param name="operationMode">AUTOMATIC</param>


</interceptor-ref>


<interceptor-ref name="defaultStack" />


</interceptor-stack>


</interceptors>

       <!-- 为此包下的所有action应用拦截器 -->

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



<!-- 开发环境下不要开启 <default-action-ref name="defaultAction"/> -->




<global-results>


<result name="login" type="dispatcher">/login.jsp</result>


<result name="doVoid" type="chain">


<param name="namespace">/</param>


<param name="actionName">doVoid</param>


</result>


<result name="noPermission" type="dispatcher">/common/no_permission.jsp</result>


<result name="commonError" type="dispatcher">/common/error.jsp</result>


</global-results>




<action name="defaultAction">


<result type="redirect">/login.jsp</result>


</action>


</package>




        <!--继承了上面的包-->


<package name="/" extends="common" namespace="/"> 


<action name="login" class="com.ifeng.crm.action.LoginAction">


<interceptor-ref name="debugInterceptor" />


<interceptor-ref name="defaultStack" />


<!--<result name="success" type="dispatcher">/welcome.jsp</result> -->


<result name="success" type="redirectAction">


<param name="namespace">/desktop</param>


<param name="actionName">search</param>


</result>


<result name="error" type="dispatcher">/login.jsp</result>


</action>




<action name="logout" class="com.ifeng.crm.action.LogoutAction">


<interceptor-ref name="debugInterceptor" />


<interceptor-ref name="defaultStack" />


<result name="success" type="dispatcher">/login.jsp</result>


<result name="error">/login.jsp</result>


</action>




<action name="init" class="com.ifeng.crm.action.InitAction">


<interceptor-ref name="debugInterceptor" />


<interceptor-ref name="defaultStack" />


</action>




<action name="iams/*" class="com.ifeng.crm.action.IamsAction"  method="{1}">


<interceptor-ref name="debugInterceptor" />


</action>




<action name="*" class="com.ifeng.crm.action.VoidAction" method="{1}"> <!-- 指定了拦截器,则使用该拦截器,不在使用common包中的sessionStack拦截器-->


<interceptor-ref name="debugInterceptor" />


</action>




<!-- 下载文件 -->


<action name="download" class="com.ifeng.crm.action.DownloadAction">  <!-- 没指定任何拦截器,则使用common包中的默认拦截器,即:sessionStack-->


</action>




<!-- 上传文件 -->


<action name="upLoad" class="com.ifeng.crm.action.UpLoadAction"


method="upLoadFile" />


<action name="cancelUpload" class="com.ifeng.crm.action.UpLoadAction"


method="cancelUpload" />


<action name="removeUpload" class="com.ifeng.crm.action.UpLoadAction"


method="removeUpload" />


<action name="deletes" class="com.ifeng.crm.action.UpLoadAction"


method="deletes" />




<!-- 查看附件 -->


<action name="attachment" class="com.ifeng.crm.action.AttachmentAction">


<result name="success">/attachment/attachment_list.jsp</result>


<result name="error">/common/error.jsp</result>


</action>




<!-- 变动历史列表 -->


<action name="history" class="com.ifeng.crm.action.HistoryAction">


<result name="success">/history/history_list.jsp</result>


<result name="error">/common/error.jsp</result>


</action>


<!-- 修改历史明细 -->


<action name="showDetail" class="com.ifeng.crm.action.HistoryAction" method="showDetail">


<result name="success">/history/history_detail_iframe.jsp</result>


<result name="error">/common/error.jsp</result>


</action>




<!-- 全文检索 -->


<action name="searchAll" class="com.ifeng.crm.action.AllSearchAction">


<result name="success">/search_all.jsp</result>


</action>


</package>




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


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


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


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


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


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


</struts>