struts 2の動作原理クライアント送信要求は一連のフィルタを通過する.
FilterDispatcherは、このREquestが呼び出す必要があるAction をActionMapperによって決定する
FilterDispather ActionProxy に渡す
コンフィギュレーションマネージャからstrutsに問い合わせる.xml対応アクションが見つかりました
ActionProxy ActionInvocationインスタンスを作成
ActionAction実行完了ActionInvocationを呼び出すstrutsに従う.xmlの構成は、対応する戻り結果を見つける.
Strutsブロッキング、一般的なブロッキング Struts 2のブロッカーはそのコア部分であり、Actionの実行前後でが可能な特殊なモジュールを定義することができるメカニズムを提供する.
modelDriven( )
servletConfig( ServletApo)
params( )
validation( )
struts 2の利点 mvcモード階層の明確化を実現し、豊富なラベルライブラリにより、開発効率が向上は、を実現する豊富なブロッキングを提供します.
便利異常処理プロファイルによりシステムの各部間の関係を把握できる.
struts 2コアコントローラ FilterDispatcher
は、すべてのユーザ要求をブロックする責任を負い、ユーザ要求が到着すると、Filterはユーザ要求をフィルタリングする.ユーザ要求がactionで終わると、要求はStruts 2フレームワーク処理に移される. struts 2プロファイル上書き順序 struts.xml -> struts.properties -> web.xml(フィルタを構成する場合、パラメータを指定します.プログラマは作成できます) struts 2定数を変更する方法 struts.xml
:
struts.properties
: struts.action.extension=do
Action Actionは複数例なのでSpringでScopeがパラメータを設定する
ワイルドカード動的呼び出し Action実装の3つの方式単純なPOJO 実装Actionインタフェース(フォーマットされた戻りパラメータを提供する) ActionSupport(Actionインタフェースを実現し、国際化と検証の機能もいくつかある)を継承する
サーブレットAPIへのアクセス ServletActionContext インタフェースサーブレットRequestAware、サーブレットResponseAware、サーブレットContextAwareブロッカーが注入を担当する 結果ビュー chain(動作に転送し、同じパケット内にnameを設定する必要がない場合)dispatcher(デフォルト)redierct(リダイレクト要求)stream(ファイルのアップロードとダウンロード) デフォルトstruts-defaultの役割 struts-defaultパッケージはstrutsに内蔵されており、struts 2内部の多くのブロッカーとResultタイプを定義しています.Struts 2の多くのコアの機能は、これらの内蔵ブロッカーによって実現されています.パッケージがstruts-defaultパッケージを継承している場合、struts 2が提供するこれらの機能を使用することができます. 通常、各パケットはstruts-defaultパケットを継承する必要があります. struts 2指定したメソッドを検証する方法検証機能はvalidationブロッキングによって処理される.エコーエラー情報はworkflowブロッキングによって処理されます. 検証に失敗した後、エラーメッセージが表示されるには、/regist.jsp
結果ビューを設定する必要がある.
クラス内のすべてのメソッドを検証し、validate()メソッドを複写し、エラーが発生した場合、addFieldError(「name」、「ユーザー名を入力してください」); 指定メソッドへ:validate()メソッドをpublic void validateDemo 1の後に指定メソッドの名前(Demo 1メソッドの検証)に書き換える.
値スタック Value StackのライフサイクルはActionのライフサイクルでありrequestドメインに保存され、各actionには対応する値スタックがあり、actionオブジェクトはデフォルトでスタックトップに保存されます.
OGLLアクセス値スタックのコンテンツを使用するには#を追加する必要はありません.他のドメインにアクセスするには#を追加する必要があります.
ActionContext、サーブレットContext、pageContextの違いは? ActionContextは、現在のActionのコンテキスト環境であり、request、session、サーブレットContext等のActionに関するオブジェクトの参照をActionContextにより取得することができる.
サーブレットContextはドメインオブジェクトであり、1つのウェブアプリケーションの中に1つのサーブレットContextしかなく、ライフサイクルはウェブアプリケーション全体を伴う. pageContextはJSPの中で最も重要な内蔵オブジェクトであり、pageContextを通じて他のドメインオブジェクトのアプリケーションを取得することができ、同時にドメインオブジェクトであり、現在のページに対してのみ作用範囲がある.
ブロッキング各ブロッカーはInterceptorインタフェースを実現したjavaクラスである.
Init()は、このブロッキングが初期化するときに呼び出される.
intercept()ブロッキングが機能するときにを呼び出す.
destroy()は、ブロッキングが破棄されたときにを呼び出す.
struts 2デフォルト18ブロック カスタムブロッキングクラス継承MethodFilterInterceptor
を記述する
struts2.xml宣言ブロッキング struts2.xmlで音声構成のブロッカーは、カスタムブロッカーを指定するとデフォルトのブロッカーが無効になるので、一度指定することも表示されます. ファイルアップロード fileドメインformフォームenctype=multipart/form-data
提出方式post action受信ファイルオブジェクトはフォーム内のname、ファイルタイプname+ContentTypeファイル名前:jspページfileコンポーネントの名前+FileName は、複数のファイルのアップロードを配列で受信することができる.