巨大で複雑なアプリケーションをJSFで作る際に必要なタスク
-
アプリケーション全体がアクセスするバックエンドオブジェクトの登録
-
管理ビーンとモデルビーンをページから参照したときに正しい値でインスタンス化するための設定
-
アプリケーションのページ遷移を実現するナビゲーションルールの定義
-
アプリケーションのパッケージング
Using Annotations to Configure Managed Beans
-
ビーンアノテーションを使ってJSFアプリケーションを設定する
-
@ManagedBeanをつけると管理ビーンとして登録される
-
管理ビーンは(ビュー以外の)スコープをアノテーションで指定できる
-
faces-config.xmlで<faces-config>のmetadata-completeをtrueにすると、起動時にすべてのクラスのアノテーションがスキャンされる
-
アノテーションはコンポーネント、コンバータ、バリデータ、レンダラーに対しても利用可能
Using Managed Bean Scopes
-
ビーンに対して、保持されるスコープを設定できる
-
@ApplicationScoped:すべてのユーザのやりとりにわたって
-
@SessionScoped:複数回のHTTPリクエストにわたって
-
@ViewScoped:単一ページのやりとりにわたって
-
@RequestScoped:単一のHTTPリクエストにわたって
-
@NoneScoped:定義なし
-
@CustomScoped:ユーザ定義の非標準のスコープ
-
@NonScopedにするとビーンは参照されるたびにインスタンス化
-
管理ビーンから参照される管理ビーンなどに使うといい
-
セッションやアプリケーションスコープにする場合は、ビーンをスレッドセーフにする
-
HTTPリクエスト中だけ存在すればいいなら、リクエストスコープ
-
ページ遷移するまで存在すればいいなら、ビュースコープ
-
管理ビーンはリクエストが来た時にインスタンスが作られる(lazily)
-
アプリケーション起動時に、アプリケーションスコープの管理ビーンのインスタンスを作成できる(eager)
-
@ManagedBean(eager=true) + @ApplicationScoped
Application Configuration Resource File
Ordering of Application Configuration Resource Files
-
アプリケーション設定ファイルが複数ある場合、ロード順が重要になることがある
-
faces-config.xmlの<absolute-ordering>で、ロード順を絶対指定する
-
<others>要素をつけない場合は、指定したファイルのみ有効
-
faces-config.xmlの<ordering>で、ロード順を相対指定する
-
<before>, <after>
-
<others>を設定すると、1番先や最後のロード順を指定できる
-
<ordering>がないものは、あるものよりも後にロード
Configuring Beans
-
ページが初めて管理ビーンを参照したときに、@ManagedBeanまたは設定ファイルによって初期化される
-
管理ビーンの生成機能はアプリケーション設定ファイルの<managed-bean>で指定
-
1つの設定ファイルに基づいて生成
-
ビーンプロパティを追加コードなしでカスタマイズ
-
ビーンが生成された時のビーンプロパティ値を設定ファイルで定義
-
<value>でビーンのプロパティをほかの値評価式から設定できる
Using the managed-bean Element
-
アプリケーション設定ファイルの<managed-bean>要素の内容で管理ビーンは初期化される
Initializing Properties Using the managed-property Element
-
<managed-property>で初期値が必要なプロパティを設定する
-
<property-name>:プロパティ名
-
プロパティ値
-
<value>
-
<list-entries>
-
<map-entries>
-
<null-valu>
Referencing a Java Enum Type
-
プロパティ値にEnumを指定⇒<value>はEnum要素の文字列
Referencing an Initialization Parameter
Initializing Map Properties
Initializing Array and List Properties
Initializing Managed Bean Properties
-
ほかの管理ビーンを参照するプロパティをもつ管理ビーンを初期化
-
ビーンの階層を作れる
-
<value>#{...}</value>
-
参照先のオブジェクトのスコープは参照元より短くならないようにする
-
none -> none
-
application -> nome, application
-
session -> none, application, session
-
request -> none, application, session, request,view
-
view -> none, application, session, view
Initializing Maps and Lists
Registering CustomError Messages
-
コンバータやバリデータ向けのカスタムメッセージはアプリケーション起動時に利用可能にする
Using Faces Message to Create a Message
bundle = ResourceBundle.getBundle(basename, context.getViewRoot().getLocale());
Referencing Error Messages
-
ページ上ではメッセージを表示するために、<message>,<messages>タグを使う
-
標準のコンバータやバリデータの標準エラーメッセージ
-
<esource-bundle>で登録されたメッセージ
-
コンバータやバリデータでキューイングされたエラーメッセージを上かける
-
converterMessage, requiredMessage, validatorMessage
-
値はリテラル値または、ValueExpression
-
リソースは<resource-bundle>で定義したものか、ページで<f:loadBundle>で読み込む
Registering CustomLocalized StaticText
Using Default Validators
-
デフォルトバリデータはすべてのUIInputコンポーネントに適用され、ローカル定義されたバリデータの後に実行される
Configuring Navigation Rules
-
遷移ルールは暗黙的、またはアプリケーション設定ファイルに明示的に設定できる
-
明示的な設定
-
<navigation-rule>:ルール
-
<from-view-id>:遷移元(なしの場合は全ページが対象。*も利用可)
-
<navigation-case>:遷移のケースを実行するアクション(from-action)、結果(from-outcome)、遷移先(to-view-id)で指定
Implicit Navigation Rules
-
<navigation-rules>の設定がない場合に適用される
-
コンポーネントのアクション属性で遷移先を指定する
Basic Requirements of a JavaServer Faces Application
-
JSFアプリケーションの最小のWAR構成
-
web.xml
-
アプリケーション設定ファイル(faces-config.xmlなど)
-
JAR
-
クラス、JSFページ、イメージファイルなど
Configuring an ApplicationWith a Web Deployment Descriptor
-
web.xmlのJSF設定項目
-
JSFリクエストを扱うサーブレット
-
サーブレットマッピン
-
アプリケーション設定ファイル(デフォルト以外の場所に置きたいとき)
-
web.xmlのJSF設定項目(オプション)
-
コンポーネントの状態が保存される場所
-
クライアントに暗号化された状態を保存
-
クライアントに圧縮した状態を保存
-
ページへのアクセス制限
-
XML検証を有効にするか
-
プロジェクトステージの情報
-
カスタムオブジェクトの設定
Identifying the Servlet for Lifecycle Processing
-
JSFが実行されるためには、FacesServletが必要
Specifying a Path to an Application Configuration Resource File
-
アプリケーション設定ファイル(複数可能)がデフォルトの場所にないときまたは、faces-config.xmlという名前ではない時
Specifying a Path to an Application Configuration Resource File
Configuring Project Stage
Including the Classes, Pages, andOther Resources
最終更新:2012年09月12日 07:40