2011-01-24 13 views
1

例外を記録する例外インターセプタのパラメータを設定したいとします。 したがって、struts.xmlにパッケージを作成し、struts-default.xmlからdefault-stackをコピーしました。 しかし、例外をログに記録せず、引き続きdefaultStackを使用しているようです。ここでstruts2のデフォルトのインターセプタスタック設定

は私のstruts.xmlです:

<struts> 
    <package name="default" extends="struts-default"> 
     <interceptors> 
     <interceptor-stack name="myStack"> 
      <interceptor-ref name="exception"> 
       <param name="logEnabled"> true </param> 
       <param name="logCategory"> struts </param> 
       <param name="logLevel"> ERROR </param> 
      </interceptor-ref> 
      ... 
     </interceptor-stack> 
     </interceptors> 

     <default-interceptor-ref name="myStack" /> 
    </package> 
</struts> 
+1

すべてのxmlを少なくとも4スペース分空けてください。表示されます。 – Quaternion

+0

...を記入し、このスタックを利用するはずのアクションを追加してください。 – Quaternion

+1

上記のXMLスニペットを自分のwebappにコピーし、デフォルトのstruts xmlファイルからデフォルトのスタックの残りの部分を埋め込み、うまくいきました。あなたのプロジェクトで何か他のことが起こっていると、ロギングが起こらないようにする必要があります。使用しているstruts.xmlファイル全体を提供すると、問題を解決するのに役立ちます。 –

答えて

1

これは正常に動作する必要があり、あなたはストラット・デフォルトを拡張し、同じパッケージ、すなわち、「デフォルト」のパッケージ内にある追加するすべての新しいアクションを提供します。 あなたは別のパッケージにアクションを記述しています(これは、 "default"ではなくstruts-defaultを再度拡張しています) - カスタムパッケージ)、defaultStackをデフォルトのインターセプタスタックとして使用します。これはstruts-defaultのデフォルトスタックです。

したがって、デフォルトのスタックをmyStackでオーバーライドする場合は、アクションがカスタムパッケージ内にあることを確認してください - 「デフォルト」またはカスタムパッケージをストラットではなく「デフォルト」に拡張するパッケージ内デフォルトパッケージ。