2010-10-21 17 views
0

Je vous écris dans mon struts.xml cette pile d'intercepteurspile intercepteurs struts2

<interceptor-stack name="project-interceptors-stack">            
    <interceptor-ref name="my1-i" /> 
    <interceptor-ref name="my2-i" />     
    <interceptor-ref name="paramsPrepareParamsStack" /> 
    <interceptor-ref name="logger" /> 
    <interceptor-ref name="timer" /> 
</interceptor-stack> 

où my1-i et my2-i sont mes intercepteurs sur mesure. Je ne me intercepteur

<interceptor-ref name="i18n"/> 
<interceptor-ref name="prepare"/> 
<interceptor-ref name="modelDriven"/> 
<interceptor-ref name="validation"> 

mais, mon action de, qui sont préparables, ModelDriven et Validateable fonctionnent bien ... pourquoi?

Suivi: J'ai omis un détail important: la pile d'intercepteurs est définie dans le premier paquet et héritée par tous les sous-packages.

Plus précisément je voulais demander ceci: pourquoi, si mon action met en œuvre préparable, et je n'ai pas l'intercepteur « <interceptor-ref name="prepare"/> » dans ma pile personnalisée, la méthode préparer est appelé correctement?

+0

S'il vous plaît, utilisez des réponses pour les réponses. Si vous avez besoin d'ajouter des détails à votre question, il suffit de la modifier. –

Répondre

1

Que voulez-vous dire exactement par là?

mes actions, qui sont, préparable ModelDriven et Validateable fonctionnent bien

Vous voulez dire que les intercepteurs semblent être appliquées, par exemple, la validation déclarative est appliquée? (Vous pouvez vérifier ce que chaque intercepteur standard est censé faire here)

Si oui, vous devez vérifier que votre pile est utilisé efficacement en vous l'action, en spécifiant dans la mise en correspondance d'action ou globally (le code affiché simplement définit une pile).

0

Elles sont incluses dans le paramsPrepareParamsStack. Ci-dessous est la définition selon struts-default.xml,

<interceptor-stack name="paramsPrepareParamsStack"> 
      <interceptor-ref name="exception"/> 
      <interceptor-ref name="alias"/> 
      <interceptor-ref name="i18n"/> 
      <interceptor-ref name="checkbox"/> 
      <interceptor-ref name="datetime"/> 
      <interceptor-ref name="multiselect"/> 
      <interceptor-ref name="params"/> 
      <interceptor-ref name="servletConfig"/> 
      <interceptor-ref name="prepare"/> 
      <interceptor-ref name="chain"/> 
      <interceptor-ref name="modelDriven"/> 
      <interceptor-ref name="fileUpload"/> 
      <interceptor-ref name="staticParams"/> 
      <interceptor-ref name="actionMappingParams"/> 
      <interceptor-ref name="params"/> 
      <interceptor-ref name="conversionError"/> 
      <interceptor-ref name="validation"> 
       <param name="excludeMethods">input,back,cancel,browse</param> 
      </interceptor-ref> 
      <interceptor-ref name="workflow"> 
       <param name="excludeMethods">input,back,cancel,browse</param> 
      </interceptor-ref> 
     </interceptor-stack>