0

本「Struts2 in Action」では、次のように述べられています。

インターセプター参照自体を定義しないアクションはデフォルトのインターセプターを継承しますが、アクションが独自のインターセプターを宣言するとすぐに、その自動デフォルトが失われ、それを使用するには defaultStack に明示的に名前を付ける必要があります。

しかし、ネット上の非常に多くの例では、アクションセクションが独自のインターセプターを宣言していることがわかりますが、ここのようにデフォルトのスタックを宣言する必要はありません。彼らのコードは次のとおりです。

<action name="TestLogger" class="vaannila.TestLoggerAction">
            <interceptor-ref name="logger" />
            <result name="success">/success.jsp</result>
</action>

私が欠けているものはありますか?

4

1 に答える 1

1

これは、カスタム インターセプターを構成する方法を示す例です。この 1 つのインターセプターを宣言して適用することはできますが、フレームワークによって提供される他のインターセプターは実行されず、フレームワークによって提供されるほとんどの機能は実行されません。行為。

著者が説明しようとしているのは、独自のインターセプター スタックを定義し、デフォルト スタックを継承しない場合、またはフレームワークで使用されている他のインターセプターを定義しない場合、ほとんどの機能が失われるということです。

インターセプターは、アクションごとに構成できます。独自のカスタム インターセプターは、フレームワークにバンドルされているインターセプターと組み合わせて使用​​できます。インターセプターは、実行順序を指定するスタックで定義されます。ほとんどの場合、カスタム インターセプター スタックを定義するときに、デフォルト スタックまたは拡張のいずれかになります。提供されたインターセプターの実行を独自の方法で定義します。

インターセプタースタックが実際にフレームワークによってどのように宣言されているかを見てください

要するに、インターセプタースタックがグループ化されたインターセプターのセットであり、スタックで定義されたシーケンスで起動される場合。

カスタム インターセプターを定義するもう 1 つの例

creation_a_login_interceptor

これがあなたにいくつかのアイデアを与えることを願っています

于 2012-07-27T07:17:26.853 に答える