2

例外インターセプターが例外をログに記録するためのパラメーターを構成したいと考えています。そこで、struts.xml にパッケージを作成し、struts-default.xml から default-stack をコピーしました。ただし、例外はログに記録されず、まだ defaultStack を使用しているようです。

ここに私の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>
4

1 に答える 1

1

これは、追加するすべての新しいアクションが同じパッケージ (つまり、struts-default を拡張する「デフォルト」パッケージ) にある場合、うまく機能するはずです。

私の知る限り、それがうまくいかない可能性が1つだけあります。それは次のようになります。別のパッケージにアクションを記述しました(これは、「デフォルト」ではなくstruts-defaultを拡張します-カスタムパッケージ)、したがって、デフォルトのインターセプタ スタックとして defaultStack を使用します。これは、struts-default のデフォルトのスタックです。

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

于 2011-08-12T12:01:08.357 に答える