Java > JavaEE > WebTier > JSFAdvanced

「Java/JavaEE/WebTier/JSFAdvanced」の編集履歴(バックアップ)一覧はこちら

Java/JavaEE/WebTier/JSFAdvanced - (2012/09/07 (金) 08:13:52) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

---- *Overviewof the JavaServer Faces Lifecycle -一般的なWebアプリケーションのライフサイクル --入力リクエストのハンドリング --パラメータのでコード --状態の変更と保存 --プラウザへのページの描画 -簡単なアプリケーションでは、JSFの自動的なライフサイクル管理を利用 -複雑なアプリケーションでは、自分でライフサイクル管理 -良いコンポーネントを作るためには、ライフサイクルのフェーズを理解する必要がある ---- *The Lifecycle of a JavaServer Faces Application -クライアントがページに対してHTTPリクエストを送信したときに開始 -サーバがページのレスポンスを返却したら終了 -ライフサイクルは大きくexecuteとrenderの2フェーズ分けられる -executeフェーズはコンポーネントツリーを扱うためにさらにサブフェーズに分けられる --コンポーネントデータの変換、バリデート、コンポーネントイベントのハンドリング、ビーンへのコンポーネントデータ設定 -JSFページはviewと呼ばれるコンポーネントツリーにより表現される --JSFはライフサイクル中に、過去のページサブミットで保存された状態を考えながらviewを生成する -ライフサイクルでは2種類のリクエストを扱う --initialリクエスト ---ページに対して初回のリクエスト ---Restore View と Render Response のみ実行される --postbadk ---すでにプラウザに表示されているページ上でフォームをサブミット ---すべてのフェーズを実行 -別ページを描画するために、アプリケーションは新規にviewを作成しFacesContextインスタンスに保存する -FacesContext.renderResponseで即時にビューをレンダリング -FacesContext.responseCompleteでRender Responseフェーズをスキップ --Webサービスなどの異なるアプリケーションへのリダイレクト --JSFコンポーネントを含まないレスポンス生成 -コンポーネントのimmediate属性をtrueにすると変換、バリデーション、イベントハンドリングがApply Request Values Phaseで行われる **Restore Viewフェーズ -JSFページへのリクエストがあったとき -ページビューのビルド -イベントハンドラとバリデータをコンポーネントに紐付け -FacesContextへのビューの保存 -ページへの初回リクエストの場合、空ビューを生成し、Render Responseフェーズへ -ページへのボスとバックリクエストの場合、FacesContextにページ情報が保存されていて、クライアントまたはサーバに保存されている状態の情報を使ってビューをリストア **Apply Request Valuesフェーズ -ポストバックリクエストでビューがリストアされた後、ツリー内のコンポーネントはprocessDecodes()でリクエストパラメータから新しい値を抜き出し、コンポーネントのローカル値が設定される --値の変換が失敗したらコンポーネントに対するエラーメッセージの生成とFacesContextへのキューイングが行われる ---エラーメッセージはRender Responseフェーズでバリデーションエラーメッセージとともに表示 -デコードまたはイベントリスナがFacesContext.renderResponseメソッドを読んだらRender Responseフェーズまでスキップされる -このフェーズでキューイングされたイベントは、関連リスナーにブロードキャストされる -コンポーネントのimmediate属性がtrueの場合は、バリデータ、変換、イベント処理が実行される -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -終了状態: --コンポーネントには新しい値が設定 --メッセージとイベントがキューされている **ProcessValidationsフェーズ -ツリー中のコンポーネントに登録されたすべてのバリデータが実行(processValidatorsメソッド)される --コンポーネントの属性としてしていされたバリデーションルールとローカルのコンポーネント値 -ローカル値が不正な場合は、FacesContextにエラーメッセージが追加され、Render Responseフェーズへ --バリデーションと変換(Apply Request Valueフェーズ)のエラーメッセージが表示される -バリデートメソッドまたはイベントリスナの処理中でFacesContext.renderResponseが呼ばれると、Render Responseフェーズへ -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -このフェーズでキューイングされたイベントは、関連リスナーにブロードキャストされる **Update Model Valuesフェーズ -データバリデーションが済んだら、JSFはコンポーネントツリーを横断してサーバサイドのオブジェクトのプロパティにコンポーネントのローカル値を設定 --入力コンポーネント値属性で指定したビーンのプロパティを更新する -ローカルデータがビーンプロパティに変換できない場合は、エラーメッセージを表示するRender Responseフェーズへ -updateModelsメソッドまたはリスナの処理中でFacesContext.renderResponseが呼ばれると、Render Responseフェーズへ -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -このフェーズでキューイングされたイベントは、関連リスナーにブロードキャストされる **Invoke Application フェーズ -アプリケーションレベルのイベントハンドリング --サブミット、リンク -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -過去のリクエストの状態からビューが再構成され、コンポーネントがイベントを発生させていたら、関連リスナーにブロードキャストされる -最後にRender Responseフェーズへ **Render Responseフェーズ -ビューをビルドし、適切なリソースにページレンダリングを委譲 -初回リクエストの場合、ページ上のコンポーネントはコンポーネントツリーに追加される -ポストバックリクエストでエラーが発生した場合、元のページがレンダリングされる --Apply Request Values, Process Validations, UpdateModel Values --message, messagesタグがあればエラーメッセージが表示される -ビューがレンダリングされた後は、レスポンスの状態が保存される --続くリクエストのRestore Viewフェーズから利用可能 ---- *Partial Processing and Partial Rendering -単一コンポーネントに対して、処理とレンダリングが可能 -パーシャルリクエストはJSFではPartialViewContextで扱われる -f:ajaxタグのexecute、render属性 ---- *The Lifecycle of a Facelets Application -Faceletsを使用したページに対して初回リクエストした場合、UIViewRootが作成されFacesContextに置かれる -UIViewRootはFaceletsに適用され、ビューはコンポーネントを集めて作られる -最新のビューがレスポンスとしてレンダリングされる -レンダリング時に、ビューの状態が次回のリクエストのために保存される --入力コンポーネントとフォームデータが保存される -クライアントはビューとやり取りする。この時ビューが保存された状態からリストアされる -リストアされたビューがJSFライフサイクルを通った結果、新規ビューまたは、現在のビューを再描画する -同じビューが要求されたら、保存されたビューが描画される -新規ビューが要求されたら、2番目へ -新規ビューがレスポンスとしてレンダリングされる ---- *User Interface Component Model **User Interface Component Classes -JSFはUIコンポーネントクラスとUIコンポーネントの機能のインターフェースを提供 --コンポーネント状態の維持 --オブジェクトへの参照の管理 --イベントハンドリング --標準コンポーネントの描画 -コンポーネントクラスを拡張してカスタムコンポーネントが作れる -コンポーネントクラスはUIComponentBaseを継承 |UIComponent|抽象基底クラス|| |UIComponentBase|JSFのUIコンポーネントクラスの親。デフォルト状態と振る舞いを定義|UIComponentのサブクラス| |UIColumn|UIDataコンポーネント中の単一カラム|| |UICommand|アクションを引き起こすコントローラ|| |UIData|DataModelで表現されるデータの集合を表現する|| |UIForm|データをサブミットするコントローラ。<form>タグ|| |UIGraphic|画像を表示|| |UIInput|ユーザ入力を受け取る。|UIOutputのサブクラス| |UIMessage|ローカライズされたエラーメッセージを表示|| |UIMessages|ローカライズされたエラーメッセージのセットを表示|| |UIOutcomeTarget|リンクまたはボタンでハイパーリンクを表示|| |UIOutput|ページへのデータの出力を表示|| |UIPanel|子コンポーネントのレイアウトを管理|| |UIParameter|置換パラメータを表現|| |UISelectBoolean|ユーザに選択/未選択機能を提供|UIInputのサブクラス| |UISelectItem|単一項目を表現|| |UISelectItems|項目セット全体を表現|| |UISelectMany|ユーザに項目グループから複数の項目を選択する機能を提供|UIInputのサブクラス| |UISelectOne|ユーザに項目グループから単一の項目を選択する機能を提供|UIInputのサブクラス| |UIViewParameter|リクエストのクエリパラメータを表現|UIInputのサブクラス| |UIViewRoot|コンポーネントツリーのルート|| -コンポーネントクラスは振る舞いのインタフェースを実装 |ActionSource|アクションイベントを引き起こす。JSF2.xではduplicate| |ActionSource2|ActionSourceを継承。アクションイベントハンドラメソッドの指定にUnified EL式を使える| |EditableValueHolder|ValueHolderを継承。バリデーションやValueChangeイベント発生などの追加フィーチャ| |NamingContainer|このコンポーネントのルートコンポーネントは一意のIDをもつ| |StateHolder|コンポーネント状態がリクエスト間で保存される| |ValueHolder|コンポーネントがローカル値を保持する。| |SystemEventListenerHolder|SystemEventListenerのリストを保持する| |ClientBehaviorHolder|ClientBehaviorインスタンスを付加できる| -UICommandはActionSource2、StateHolderを実装 -UIOutputはStateHolder、ValueHolderを実装 -UIInputはEditableValueHolder、StateHolder、ValueHolderを実装 -UIComponentBaseはStateHolderを実装 -コンポーネント作成者はコンポーネントクラスと振る舞いインターフェースを直接つかう -ページ作成者は標準コンポーネントをページにタグを埋め込むことでつかう -多くのコンポーネントは異なる形式で描画できる **Component Rendering Model -コンポーネントの機能はコンポーネントクラスで、描画は描画クラスでと分割している --機能は一度書けばよく、レンダリングは複数用意できる --ページ作成者はコンポーネントの見かけをタグを変更することで変えられる -レンダーキットはコンポーネントクラスから特定クライアント向けのコンポーネントタグへのマップを定義する --JSFはHTMLクライアント向けの標準HTMLレンダーキットを定義している -レンダーキットはコンポーネントクラスに対してレンダークラスを定義している --レンダークラスは対応するコンポーネントのそれぞれの描画方法を定義 ---UISelectOneコンポーネントに対して、ラジオボタン、コンポボックス、リストボックス ---UICommandコンポーネントに対して、commandButtonタグ、commandLinkタグ **Conversion Model -JSFではコンポーネントをサーバ側のオブジェクトのプロパティに関連付ける -コンポーネントがオブジェクトに関連付けられると、コンポーネントのデータのビューが2つある --データの型で表現されるモデルビュー --ユーザ向けのプレゼンテーションビュー -JSFはモデルビューとプレゼンテーションビューのデータを自動的に変換する -JSFでは変換処理をカスタマイズできる --UIOutputコンポーネントにConverter実装を登録する **Event and Listener Model -アプリケーションイベント --UIComponentによって生成される、特定のアプリ向けのイベント --Eventオブジェクトは生成元のコンポーネントの情報とイベント情報をもつ --コンポーネントにListener実装を登録することで、イベントがリスナーに通知される ---リスナー実装クラスを作成し、<actionListener>,<valueChangeListener>タグをコンポーネントタグに設定する ---管理ビーンのメソッドを実装し、コンポーネントタグの属性で参照 --ActionEvent ---ActionSourceを実装したコンポーネントがアクティブになったときに生成 ---コンポーネントのimmediateがtrueの場合は、invoke applicationまたはapply request valuesフェーズで実行 --ValueChangeEvent ---UIInput(UIInput, UISelectOne, UISelectMany,UISelectBoolean)コンポーネントの値が変更されたとき生成 ---バリデーションエラーがないときのみイベントが生成 ---コンポーネントのimmediateがtrueの場合は、process validationsまたはapply request valuesフェーズで実行 -システムイベント --アプリケーション実行中にUIComponentではなくオブジェクトによって生成される -データモデルイベント --UIDataの新規行が選択されたら発生 **Validation Model -JSFはローカルデータがモデルデータに反映される前にバリデーションを行う -標準バリデータクラスの実装と対応するタグ(JSFコアタグ)が提供されている -コンポーネントタグにバリデータタグをネストすることで、バリデータを登録する -すべてのUIInputコンポーネントにデフォルトバリデータを登録することも可能 -カスタムバリデータ(バリデータ実装とタグ)を作成できる --Validator実装クラス、または管理ビーンのメソッド --アプリケーションにバリデータ実装を登録、またはカスタムタグをコンポーネントに登録 **Navigation Model -JSFのナビゲーションモデルによって、ページ遷移の定義と、遷移に必要な処理のハンドリングが行える -ナビゲーションはアプリケーションのアクション(ボタン押下とか)によって次のページを決定するルールセット --暗黙的ナビゲーション --ユーザ定義ナビゲーション ---ルールリソースファイル(faces-config.xmlとか)に記述 ---ルールは「from-view-idからfrom-outcomeの場合にto-view-idへ」の形式で ---JSFはコンポーネントのアクション属性の結果文字列(固定or管理ビーンのアクションメソッドの戻り値)を使ってルールを選択する -ルールの決定はNavigationHandlerが行う
---- *Overviewof the JavaServer Faces Lifecycle -一般的なWebアプリケーションのライフサイクル --入力リクエストのハンドリング --パラメータのでコード --状態の変更と保存 --プラウザへのページの描画 -簡単なアプリケーションでは、JSFの自動的なライフサイクル管理を利用 -複雑なアプリケーションでは、自分でライフサイクル管理 -良いコンポーネントを作るためには、ライフサイクルのフェーズを理解する必要がある ---- *The Lifecycle of a JavaServer Faces Application -クライアントがページに対してHTTPリクエストを送信したときに開始 -サーバがページのレスポンスを返却したら終了 -ライフサイクルは大きくexecuteとrenderの2フェーズ分けられる -executeフェーズはコンポーネントツリーを扱うためにさらにサブフェーズに分けられる --コンポーネントデータの変換、バリデート、コンポーネントイベントのハンドリング、ビーンへのコンポーネントデータ設定 -JSFページはviewと呼ばれるコンポーネントツリーにより表現される --JSFはライフサイクル中に、過去のページサブミットで保存された状態を考えながらviewを生成する -ライフサイクルでは2種類のリクエストを扱う --initialリクエスト ---ページに対して初回のリクエスト ---Restore View と Render Response のみ実行される --postbadk ---すでにプラウザに表示されているページ上でフォームをサブミット ---すべてのフェーズを実行 -別ページを描画するために、アプリケーションは新規にviewを作成しFacesContextインスタンスに保存する -FacesContext.renderResponseで即時にビューをレンダリング -FacesContext.responseCompleteでRender Responseフェーズをスキップ --Webサービスなどの異なるアプリケーションへのリダイレクト --JSFコンポーネントを含まないレスポンス生成 -コンポーネントのimmediate属性をtrueにすると変換、バリデーション、イベントハンドリングがApply Request Values Phaseで行われる **Restore Viewフェーズ -JSFページへのリクエストがあったとき -ページビューのビルド -イベントハンドラとバリデータをコンポーネントに紐付け -FacesContextへのビューの保存 -ページへの初回リクエストの場合、空ビューを生成し、Render Responseフェーズへ -ページへのボスとバックリクエストの場合、FacesContextにページ情報が保存されていて、クライアントまたはサーバに保存されている状態の情報を使ってビューをリストア **Apply Request Valuesフェーズ -ポストバックリクエストでビューがリストアされた後、ツリー内のコンポーネントはprocessDecodes()でリクエストパラメータから新しい値を抜き出し、コンポーネントのローカル値が設定される --値の変換が失敗したらコンポーネントに対するエラーメッセージの生成とFacesContextへのキューイングが行われる ---エラーメッセージはRender Responseフェーズでバリデーションエラーメッセージとともに表示 -デコードまたはイベントリスナがFacesContext.renderResponseメソッドを読んだらRender Responseフェーズまでスキップされる -このフェーズでキューイングされたイベントは、関連リスナーにブロードキャストされる -コンポーネントのimmediate属性がtrueの場合は、バリデータ、変換、イベント処理が実行される -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -終了状態: --コンポーネントには新しい値が設定 --メッセージとイベントがキューされている **ProcessValidationsフェーズ -ツリー中のコンポーネントに登録されたすべてのバリデータが実行(processValidatorsメソッド)される --コンポーネントの属性としてしていされたバリデーションルールとローカルのコンポーネント値 -ローカル値が不正な場合は、FacesContextにエラーメッセージが追加され、Render Responseフェーズへ --バリデーションと変換(Apply Request Valueフェーズ)のエラーメッセージが表示される -バリデートメソッドまたはイベントリスナの処理中でFacesContext.renderResponseが呼ばれると、Render Responseフェーズへ -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -このフェーズでキューイングされたイベントは、関連リスナーにブロードキャストされる **Update Model Valuesフェーズ -データバリデーションが済んだら、JSFはコンポーネントツリーを横断してサーバサイドのオブジェクトのプロパティにコンポーネントのローカル値を設定 --入力コンポーネント値属性で指定したビーンのプロパティを更新する -ローカルデータがビーンプロパティに変換できない場合は、エラーメッセージを表示するRender Responseフェーズへ -updateModelsメソッドまたはリスナの処理中でFacesContext.renderResponseが呼ばれると、Render Responseフェーズへ -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -このフェーズでキューイングされたイベントは、関連リスナーにブロードキャストされる **Invoke Application フェーズ -アプリケーションレベルのイベントハンドリング --サブミット、リンク -別リソースへのリダイレクティング、JSFコンポーネントを含まないレスポンス生成の場合は、FacesContext.responseCompleteを呼べば良い -過去のリクエストの状態からビューが再構成され、コンポーネントがイベントを発生させていたら、関連リスナーにブロードキャストされる -最後にRender Responseフェーズへ **Render Responseフェーズ -ビューをビルドし、適切なリソースにページレンダリングを委譲 -初回リクエストの場合、ページ上のコンポーネントはコンポーネントツリーに追加される -ポストバックリクエストでエラーが発生した場合、元のページがレンダリングされる --Apply Request Values, Process Validations, UpdateModel Values --message, messagesタグがあればエラーメッセージが表示される -ビューがレンダリングされた後は、レスポンスの状態が保存される --続くリクエストのRestore Viewフェーズから利用可能 ---- *Partial Processing and Partial Rendering -単一コンポーネントに対して、処理とレンダリングが可能 -パーシャルリクエストはJSFではPartialViewContextで扱われる -f:ajaxタグのexecute、render属性 ---- *The Lifecycle of a Facelets Application -Faceletsを使用したページに対して初回リクエストした場合、UIViewRootが作成されFacesContextに置かれる -UIViewRootはFaceletsに適用され、ビューはコンポーネントを集めて作られる -最新のビューがレスポンスとしてレンダリングされる -レンダリング時に、ビューの状態が次回のリクエストのために保存される --入力コンポーネントとフォームデータが保存される -クライアントはビューとやり取りする。この時ビューが保存された状態からリストアされる -リストアされたビューがJSFライフサイクルを通った結果、新規ビューまたは、現在のビューを再描画する -同じビューが要求されたら、保存されたビューが描画される -新規ビューが要求されたら、2番目へ -新規ビューがレスポンスとしてレンダリングされる ---- *User Interface Component Model **User Interface Component Classes -JSFはUIコンポーネントクラスとUIコンポーネントの機能のインターフェースを提供 --コンポーネント状態の維持 --オブジェクトへの参照の管理 --イベントハンドリング --標準コンポーネントの描画 -コンポーネントクラスを拡張してカスタムコンポーネントが作れる -コンポーネントクラスはUIComponentBaseを継承 |UIComponent|抽象基底クラス|| |UIComponentBase|JSFのUIコンポーネントクラスの親。デフォルト状態と振る舞いを定義|UIComponentのサブクラス| |UIColumn|UIDataコンポーネント中の単一カラム|| |UICommand|アクションを引き起こすコントローラ|| |UIData|DataModelで表現されるデータの集合を表現する|| |UIForm|データをサブミットするコントローラ。<form>タグ|| |UIGraphic|画像を表示|| |UIInput|ユーザ入力を受け取る。|UIOutputのサブクラス| |UIMessage|ローカライズされたエラーメッセージを表示|| |UIMessages|ローカライズされたエラーメッセージのセットを表示|| |UIOutcomeTarget|リンクまたはボタンでハイパーリンクを表示|| |UIOutput|ページへのデータの出力を表示|| |UIPanel|子コンポーネントのレイアウトを管理|| |UIParameter|置換パラメータを表現|| |UISelectBoolean|ユーザに選択/未選択機能を提供|UIInputのサブクラス| |UISelectItem|単一項目を表現|| |UISelectItems|項目セット全体を表現|| |UISelectMany|ユーザに項目グループから複数の項目を選択する機能を提供|UIInputのサブクラス| |UISelectOne|ユーザに項目グループから単一の項目を選択する機能を提供|UIInputのサブクラス| |UIViewParameter|リクエストのクエリパラメータを表現|UIInputのサブクラス| |UIViewRoot|コンポーネントツリーのルート|| -コンポーネントクラスは振る舞いのインタフェースを実装 |ActionSource|アクションイベントを引き起こす。JSF2.xではduplicate| |ActionSource2|ActionSourceを継承。アクションイベントハンドラメソッドの指定にUnified EL式を使える| |EditableValueHolder|ValueHolderを継承。バリデーションやValueChangeイベント発生などの追加フィーチャ| |NamingContainer|このコンポーネントのルートコンポーネントは一意のIDをもつ| |StateHolder|コンポーネント状態がリクエスト間で保存される| |ValueHolder|コンポーネントがローカル値を保持する。| |SystemEventListenerHolder|SystemEventListenerのリストを保持する| |ClientBehaviorHolder|ClientBehaviorインスタンスを付加できる| -UICommandはActionSource2、StateHolderを実装 -UIOutputはStateHolder、ValueHolderを実装 -UIInputはEditableValueHolder、StateHolder、ValueHolderを実装 -UIComponentBaseはStateHolderを実装 -コンポーネント作成者はコンポーネントクラスと振る舞いインターフェースを直接つかう -ページ作成者は標準コンポーネントをページにタグを埋め込むことでつかう -多くのコンポーネントは異なる形式で描画できる **Component Rendering Model -コンポーネントの機能はコンポーネントクラスで、描画は描画クラスでと分割している --機能は一度書けばよく、レンダリングは複数用意できる --ページ作成者はコンポーネントの見かけをタグを変更することで変えられる -レンダーキットはコンポーネントクラスから特定クライアント向けのコンポーネントタグへのマップを定義する --JSFはHTMLクライアント向けの標準HTMLレンダーキットを定義している -レンダーキットはコンポーネントクラスに対してレンダークラスを定義している --レンダークラスは対応するコンポーネントのそれぞれの描画方法を定義 ---UISelectOneコンポーネントに対して、ラジオボタン、コンポボックス、リストボックス ---UICommandコンポーネントに対して、commandButtonタグ、commandLinkタグ **Conversion Model -JSFではコンポーネントをサーバ側のオブジェクトのプロパティに関連付ける -コンポーネントがオブジェクトに関連付けられると、コンポーネントのデータのビューが2つある --データの型で表現されるモデルビュー --ユーザ向けのプレゼンテーションビュー -JSFはモデルビューとプレゼンテーションビューのデータを自動的に変換する -JSFでは変換処理をカスタマイズできる --UIOutputコンポーネントにConverter実装を登録する **Event and Listener Model -アプリケーションイベント --UIComponentによって生成される、特定のアプリ向けのイベント --Eventオブジェクトは生成元のコンポーネントの情報とイベント情報をもつ --コンポーネントにListener実装を登録することで、イベントがリスナーに通知される ---リスナー実装クラスを作成し、<actionListener>,<valueChangeListener>タグをコンポーネントタグに設定する ---管理ビーンのメソッドを実装し、コンポーネントタグの属性で参照 --ActionEvent ---ActionSourceを実装したコンポーネントがアクティブになったときに生成 ---コンポーネントのimmediateがtrueの場合は、invoke applicationまたはapply request valuesフェーズで実行 --ValueChangeEvent ---UIInput(UIInput, UISelectOne, UISelectMany,UISelectBoolean)コンポーネントの値が変更されたとき生成 ---バリデーションエラーがないときのみイベントが生成 ---コンポーネントのimmediateがtrueの場合は、process validationsまたはapply request valuesフェーズで実行 -システムイベント --アプリケーション実行中にUIComponentではなくオブジェクトによって生成される -データモデルイベント --UIDataの新規行が選択されたら発生 **Validation Model -JSFはローカルデータがモデルデータに反映される前にバリデーションを行う -標準バリデータクラスの実装と対応するタグ(JSFコアタグ)が提供されている -コンポーネントタグにバリデータタグをネストすることで、バリデータを登録する -すべてのUIInputコンポーネントにデフォルトバリデータを登録することも可能 -カスタムバリデータ(バリデータ実装とタグ)を作成できる --Validator実装クラス、または管理ビーンのメソッド --アプリケーションにバリデータ実装を登録、またはカスタムタグをコンポーネントに登録 **Navigation Model -JSFのナビゲーションモデルによって、ページ遷移の定義と、遷移に必要な処理のハンドリングが行える -ナビゲーションはアプリケーションのアクション(ボタン押下とか)によって次のページを決定するルールセット --暗黙的ナビゲーション --ユーザ定義ナビゲーション ---ルールリソースファイル(faces-config.xmlとか)に記述 ---ルールは「from-view-idからfrom-outcomeの場合にto-view-idへ」の形式で ---JSFはコンポーネントのアクション属性の結果文字列(固定or管理ビーンのアクションメソッドの戻り値)を使ってルールを選択する -ActionListenerはアクションメソッドの結果と、アクションメソッドへの参照をNavigationHandlerに渡す -ルールの決定はNavigationHandlerが行う --現在表示されているページに対するナビゲーションルールを選択 --結果またはアクションメソッド参照をナビゲーションケースとマッチさせる ---アクションメソッド参照と結果の両方を同じナビゲーションケースにマッチさせる ---結果をナビゲーションケースにマッチさせる ---アクションメソッド参照をナビゲーションケースにマッチさせる --ナビゲーションケースが見つからなければ、同じページを表示する --ナビゲーションケースのマッチに成功すれば、render responseフェーズが始まり選択されたべーじが描画される

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。