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は間違っています。インターセプターは、アクションの実行前に呼び出されます。リクエストを処理するパイプラインのようなものです。それらのそれぞれが次々と呼び出されました。最後のインターセプターが処理したときに、アクションが実行されます。アクション構成またはアノテーションを介して構成された、どのインターセプターを呼び出すか。インターセプターの詳細な説明については、docsを参照してください。

重要なことは、インターセプターがスタックで呼び出される順序です。defaultStackインターセプターが収集され、適切に注文される場所があります。カスタム インターセプターの参照をスタックまたはアクションに追加する場合、配置した順序に準拠する必要があります。

xml 構成ファイルは DTD に準拠する必要があります。

于 2013-04-13T07:26:15.293 に答える