0

Struts2 では、インターセプター スタックを定義しており、First in First Out 方式で呼び出されます。したがって、後処理段階で、以前のインターセプターの 1 つが制御文字列を返し、結果としてクライアントへの応答をレンダリングするとどうなるでしょうか。左のインターセプターが処理されるかどうかを知りたいです。

4

1 に答える 1

1

まあ、それはこのように動作します。

アクション メソッドは、インターセプター スタックが完全に呼び出された後にのみ呼び出されます。つまり、最初のインターセプターがスタックで正常に呼び出されると、スタックで定義された次のインターセプターが呼び出され、スタックに格納されている参照がこのチェーンになります。スタック内の最後のインターセプターが呼び出されるまで呼び出し続ける

invocation.invoke()

この呼び出しは、スタックで定義された次のインターセプターを呼び出すためのキーであるか、アクション クラスで目的の関数を呼び出す最後のインターセプターです。

別のケースでは、インターセプターの一部が失敗しworkflow、結果を返し、INPUTインターセプターのさらなる実行を停止し、フレームワークが目的の JSP/Tempelate をユーザーに出力するとします。

この場合、後処理/クリーニングが行われます。インターセプターは逆の順序で呼び出されます。つまり、実行された最上位のインターセプターまたは最後に実行されたインターセプターが最初に呼び出されます。

この後処理のアイデアは、クリーンアップ作業または実行する必要があるその他のこと (リソースのクリーンアップなど) を実行することです。

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

于 2012-02-03T11:37:44.530 に答える