JavaServer Faces (JSF) は、ページ内の再使用可能なユーザー・インターフェース (UI) コンポーネントのアセンブリーを有効にすることによって、
サーバー・ベース・アプリケーションの UI の構造を単純化する標準フレームワークです。
JSF は、ウィジェットのデータ・ソースおよびサーバー・サイド・イベント・ハンドラーへの接続を容易にします。
JSF 仕様では、標準の UI コンポーネント・セットの定義、
コンポーネントを開発するためのアプリケーション・プログラミング・インターフェース (API) の提供、
既存の標準 UI コンポーネントの再利用および拡張の有効化などが定められています。
JSF を使用すると、Java™ アプリケーション・サーバー上で実行されるアプリケーションの作成および保守、そしてターゲット・クライアントへのアプリケーション UI のレンダリングなどの作業負荷が軽減されます。
JSF は、以下の点を通じて Web アプリケーションの開発を容易にします。
- 再使用可能なコンポーネントによる UI の作成。
- アプリケーション・データの UI への移行 (およびその逆)。
- サーバー要求間での UI 状態の管理。
- カスタム・コンポーネントの実装の使用可能化。
- クライアントで生成されたイベントをサーバー・サイド・アプリケーション・コードにワイヤリングするためのモデルの提供。
JSF は、使用可能なすべての入力フィールドに対してコンポーネント・タグを用意していると同時に、Model/View/Controller (MVC) 設計フレームワークを実装しており、アプリケーションの設計を整え、容易に保守が行えるようになっています。
JSF を使用すると、Java プログラマーは、UI と統合されるバックエンド・アプリケーションの開発に集中することができます。
また、Web ページの作成者は、必要なロジックをあらかじめ備えている作成済みの JSF コンポーネントをアセンブルすることによって UI を作成できるようになります。
JSF のライフ・サイクル
JSP をレンダリングする各 JavaServer Faces 要求には、ビューとも呼ばれる JSF コンポーネント・ツリーが含まれ、複数のフェーズからなる要求処理のライフ・サイクルの中を進んでいきます。
要求処理ライフ・サイクルの標準フェーズは復元ビューの作成で始まり、次に要求値の適用、
妥当性検査の処理、モデル値の更新、そしてアプリケーションの呼び出しへと続いていきます。
アプリケーションが呼び出されると、応答がレンダリングされます。
要求処理ライフ・サイクルの複数のフェーズにおいて、イベントがキューに入れられることがあります。
キューに入れられたイベントは、関係するイベント・リスナーへとブロードキャストされます。
JSF UI コンポーネント・モデル
JSF を使用すると、さまざまなクライアントのタイプに応じた異なる方法で自身をレンダリングできるコンポーネントのコレクションから Web アプリケーションを作成できるようになります。
JSF は以下のものを備えています。
- 基本 UI コンポーネント・セット - 標準 HTML 入力要素およびコア・ライブラリー。
- 追加 UI コンポーネント・ライブラリーの作成や既存コンポーネントの拡張を行うための、基本 UI コンポーネントの拡張。
- JSF UI コンポーネントが、クライアントのタイプ (例えば、HTML ブラウザー、無線または WAP 装置など) に応じた異なる方法で自身をレンダリングできるようにする、複数のレンダリング機能。
JSF 開発の概要
JSF アプリケーションを作成する手順は、次のとおりです。
- アプリケーションのモデル・クラスを定義して実装します。
- フレームワークにモデルを記述します。
- JSP を使用して、アプリケーションのビューを作成します。
- データの検査規則を定義します。
- コントローラーのビュー・ナビゲーションを定義します。