1

我想知道这个文件是否正确,因为我不太了解拦截器。

struts.xml:

<struts>
    <interceptors>
 <interceptor-stack name="storeStack"> 
    <interceptor-ref name="defaultStack"/> 
    <interceptor-ref name="store"> 
        <param name="operationMode">STORE</param> 
    </interceptor-ref> 
</interceptor-stack>
            <interceptor-stack name="retrieveStack"> 
                <interceptor-ref name="defaultStack"/> 
                <interceptor-ref name="store">   
                </interceptor-ref> 
            </interceptor-stack>
        </interceptors>
        <action name="index">
            <result>/JSPs/eleve/view.jsp</result>
        </action>
        <action name="ajoutereleves" class="com.injaz.struts2.actions.NavigateAction" method="navigateToAjouterEleveJsp">
            <result name="ajoutereleves">/JSPs/eleve/addeleve.jsp</result>
        </action>
        <action name="listereleves" class="com.injaz.struts2.actions.NavigateAction" method="navigateToListerElevesJsp">
            <result name="listereleves">/JSPs/eleve/showseleves.jsp</result>
        </action>
        <action name="manageeleves" class="com.injaz.struts2.actions.NavigateAction" method="navigateToUpdateElevesJsp">
            <result name="manageeleves">/JSPs/eleve/manageeleves.jsp</result>
        </action>
         <action name="ajoutereleverecord" class="com.injaz.struts2.actions.AddEleveAction" method="execute">
                  
                <interceptor-ref name="defaultStack"/> 
                <interceptor-ref name="store"/>  
            <result name="success">/JSPs/eleve/addeleve.jsp</result>        
            <result name="error">/JSPs/eleve/addeleve.jsp</result>
        </action>
         <action name="updateeleve" class="com.injaz.struts2.actions.UpdateEleveAction" method="execute"> 
            <result type="json">
                <param name="contentType">text/html</param>
            </result>
        </action>
         <action name="getupdateeleve" class="com.injaz.struts2.actions.EditEleveAction" method="getEleveObject">
            <interceptor-ref name="storeStack" /> 
            <result name="success">/JSPs/eleve/editeleve.jsp</result>
            <result name="error">/JSPs/eleve/editeleve.jsp</result>
        </action>
        <action name="eleveTable" method="getEleveTable" 
                class="com.injaz.struts2.actions.EleveJsonTable">
            <result type="json">
                <param name="contentType">text/html</param>
            </result>
        </action>       
        <action name="validateEleve" class="com.injaz.struts2.validator.EleveValidator" method="validateEleveNom">
        <result type="json">
        <param name="contentType">text/html</param>
        </result>
        </action>   
    </package>
</struts>

我正在使用 Struts 2.3.1 获取更多详细信息。

4

1 回答 1

0

不,你struts.xml的不正确。拦截器在动作执行之前被调用。它就像一个为请求提供服务的管道。他们每个人都一个接一个地调用。当最后一个拦截器处理完毕时,动作被执行。在操作配置中或通过注释配置要调用的拦截器。有关拦截器的详细说明,请参阅文档

重要的是在堆栈上调用拦截器的顺序。有一个defaultStack拦截器被收集和适当排序的地方。如果您将自定义拦截器的引用添加到堆栈或操作,它应该遵守它放置的顺序。

xml 配置文件应符合 DTD。

于 2013-04-13T07:26:15.293 回答