2017-04-24 5 views
0

​​Strutsのメソッドが、アクションクラスがstruts.xmlから呼び出されたときに呼び出される最初のメソッドであるという印象でした。しかし、私がアクションクラスのコンストラクタを持っている私のコードをデバッグすると、私はコンストラクタが最初に実行されるのを見ます(私はここにインスタンスを作成していません)。Strutsでのアクションクラスの実行フロー

1)実際に実行される前に、どのメソッドが呼び出されるか、つまりアクションクラスでの実行の流れを説明してください。コンストラクタは

+0

コンストラクタとは何ですか? –

+1

クラスが...うまく構築されたときにコンストラクタが呼び出されるため、コンストラクタが呼び出されています。アクションはクラスであり、リクエストごとに作成されます。私はそれが理由だと思う。 –

答えて

0

Strutsアクションが実行される前に多くのものを呼び出すと呼ばなっている理由

2)私はわかりません。ただし、struts.xmlに設定可能です。あなたはアクション実行のリクエストフローをthis答えから見ることができます。

内部Strutsはコンフィギュレーションで定義されているすべてのオブジェクト を構築するためにObjectFactoryを使用しています。 ObjectFactoryドキュメント またはThe Struts 2 Request Flowについて詳しくは、こちらをご覧ください。


コンストラクタは、それ以外の場合は、構築されることはありません、default constructorまたはno-argument constructorを持つ必要があります。相違点の詳細については、Java default constructorを参照してください。

クラスにコンストラクタを指定する必要はありませんが、このときは に注意する必要があります。コンパイラは、コンストラクタなしの任意のクラスに対して、引数なしのデフォルトのコンストラクタを自動的に提供します( )。 このデフォルトコンストラクタは、 スーパークラスの引数なしコンストラクタを呼び出します。この状況では、 スーパークラスに引数のないコンストラクタがない場合、コンパイラはそれに応じて を確認する必要があります。クラスに明示的なスーパークラスがない場合、 コンストラクターを持たないオブジェクトの暗黙のスーパークラス があります。


アクションが実行される前に、メソッドは、主にインターセプタによって呼び出されます。デフォルトのインターセプタスタックはdefaultStackです。アクションの前に実行される多くの機能が含まれています。デフォルト構成についてのインプレッションを得るには、this答えを参照してください。

インターセプタは、アクションの実行前に呼び出されます。要求を処理するのは パイプラインのようなものです。それらのそれぞれは の別のものの後に呼び出されました。最後のインターセプタが処理されると、アクションが実行されます。 アクションコンフィグレーションでコンフィグレーションされたインターセプタを呼び出すか、 アノテーションを使用します。インターセプタの詳細については、docsを参照してください。


関連する問題