Java > JavaEE > WebTier > ConfigJSF

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

Java/JavaEE/WebTier/ConfigJSF - (2012/09/12 (水) 07:40:12) の1つ前との変更点

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

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

巨大で複雑なアプリケーションを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 -アプリケーション設定ファイルはXML形式で、通常はfaces-config.xml <?xml version="1.0" encoding=’UTF-8’?> <faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> ... </faces-config> --ローカライズされたメッセージや、遷移ルールなどの管理ビーンアノテーションで利用できないもの --管理ビーンのアノテーション設定をうわがく設定 -設定ファイルは複数も可能で、ファイル参照は以下の通り --/WEB-INF/libまたは親クラスローダのJARの/META-INF/*faces-config.xml ---バッケージングして利用する場合 --コンテキスト初期化パラメータのjavax.faces.application.CONFIG_FILESでコンマ区切りで指定 ---巨大なアプリケーションで複数の設定ファイルが必要な場合 --/WEB-INF/faces-config.xml ---シンプルなアプリケーションの場合 -アプリケーションに登録された設定情報にアクセスするにはApplicationオブジェクトを使う --JSFがサーバ起動時にApplicationをインスタンス化 **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>要素の内容で管理ビーンは初期化される --ページが管理ビーンを参照して、まだインスタンスがないとき <managed-bean> <managed-bean-name> UserNumberBean </managed-bean-name> <managed-bean-class> guessNumber.UserNumberBean </managed-bean-class> <managed-bean-scope> session </managed-bean-scope> ... </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 -プロパティ値に暗黙オブジェクトの参照を設定 <value>#{initParam.defaultAreaCode}</value> ***Initializing Map Properties -Mapのプロパティの初期化には<map-entries>を使う <map-entries> <key-class>int</key-class> <value-class>java.math.BigDecimal</value-class> <map-entries> <map-entry> <key>xxx</key> <value>yyy</value> </map-entry> </map-entries> </map-entries> ***Initializing Array and List Properties -配列やリストのプロパティの初期化には<list-entries> <list-entries> <value>xxx</value> <null-value/> </list-entries> ***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 -コンバータやバリデータ向けのカスタムメッセージはアプリケーション起動時に利用可能にする --メッセージをFacesContext上にプログラムから登録する --アプリケーション設定ファイルにメッセージを定義する <application> <resource-bundle> <base-name>messages</base-name> <var>messages</var> </resource-bundle> <locale-config> <default-locale>ja</default-locale> </locale-config> </application> ***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が必要 --リクエスト処理のライフサイクル管理と、リソースの初期化をする <servlet> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>/faces/* </url-pattern> </servlet-mapping> --url-patternはパス指定(/faces/*)、拡張子指定(*.faces)が可能 ***Specifying a Path to an Application Configuration Resource File -アプリケーション設定ファイル(複数可能)がデフォルトの場所にないときまたは、faces-config.xmlという名前ではない時
巨大で複雑なアプリケーションを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 -アプリケーション設定ファイルはXML形式で、通常はfaces-config.xml <?xml version="1.0" encoding=’UTF-8’?> <faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> ... </faces-config> --ローカライズされたメッセージや、遷移ルールなどの管理ビーンアノテーションで利用できないもの --管理ビーンのアノテーション設定をうわがく設定 -設定ファイルは複数も可能で、ファイル参照は以下の通り --/WEB-INF/libまたは親クラスローダのJARの/META-INF/*faces-config.xml ---バッケージングして利用する場合 --コンテキスト初期化パラメータのjavax.faces.application.CONFIG_FILESでコンマ区切りで指定 ---巨大なアプリケーションで複数の設定ファイルが必要な場合 --/WEB-INF/faces-config.xml ---シンプルなアプリケーションの場合 -アプリケーションに登録された設定情報にアクセスするにはApplicationオブジェクトを使う --JSFがサーバ起動時にApplicationをインスタンス化 **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>要素の内容で管理ビーンは初期化される --ページが管理ビーンを参照して、まだインスタンスがないとき <managed-bean> <managed-bean-name> UserNumberBean </managed-bean-name> <managed-bean-class> guessNumber.UserNumberBean </managed-bean-class> <managed-bean-scope> session </managed-bean-scope> ... </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 -プロパティ値に暗黙オブジェクトの参照を設定 <value>#{initParam.defaultAreaCode}</value> ***Initializing Map Properties -Mapのプロパティの初期化には<map-entries>を使う <map-entries> <key-class>int</key-class> <value-class>java.math.BigDecimal</value-class> <map-entries> <map-entry> <key>xxx</key> <value>yyy</value> </map-entry> </map-entries> </map-entries> ***Initializing Array and List Properties -配列やリストのプロパティの初期化には<list-entries> <list-entries> <value>xxx</value> <null-value/> </list-entries> ***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 -コンバータやバリデータ向けのカスタムメッセージはアプリケーション起動時に利用可能にする --メッセージをFacesContext上にプログラムから登録する --アプリケーション設定ファイルにメッセージを定義する <application> <resource-bundle> <base-name>messages</base-name> <var>messages</var> </resource-bundle> <locale-config> <default-locale>ja</default-locale> </locale-config> </application> ***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が必要 --リクエスト処理のライフサイクル管理と、リソースの初期化をする <servlet> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>/faces/* </url-pattern> </servlet-mapping> --url-patternはパス指定(/faces/*)、拡張子指定(*.faces)が可能 ***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

表示オプション

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

下から選んでください:

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