JavaServer Faces
JavaServer Faces (JSF) は、Java™ ベースの Web アプリケーションの開発を容易にするユーザー・インターフェース・フレームワークまたはアプリケーション・プログラミング・インターフェース (API) です。
- 再利用可能なユーザー・インターフェース・コンポーネントのセットからユーザー・インターフェースを容易に作成します。
- ユーザー・インターフェースとの間でのアプリケーション・データのマイグレーションを単純化します。
- サーバー要求でのユーザー・インターフェース状態の管理に役立ちます。
- クライアント生成イベントをサーバー・サイド・アプリケーション・コードにワイヤリングする単純モデルを提供します。
- ビルドおよび再使用のためにカスタム・ユーザー・インターフェース・コンポーネントをサポートします。
Apache MyFaces 実装は WebSphere Application Server に組み込まれていて、JSF に使用されるコードの基盤となります。
製品に組み込まれているバージョンの JSF ランタイムは、標準のランタイム・ライブラリーのロケーションにあり、JSF API を使用するすべての Web アプリケーションに使用可能です。JSF サーブレットのロードは、ランタイムが Web アプリケーションと共にパッケージされているかのように機能します。バンドル・バージョンには、WebSphere Application Server の標準装備のアノテーション・スキャンおよびその他のランタイム・コンポーネントとより適切に統合するための機能強化が含まれています。
JSF の仕様関連クラス javax.faces.* と、IBM® 変更バージョンの Apache MyFaces JSF 実装が、ランタイムにパッケージされています。
通常、この API/Framework を使用する Web アプリケーションは、JSF API および実装 Java アーカイブ (JAR) ファイルを Web アプリケーション・アーカイブ (WAR) フ ァイル内に組み込みます。この組み込みは、 これらの Web アプリケーションが WebSphere Application Server 内でデプロイおよび実行される場合には、 必要ありません。必要となるのは、これらの JAR ファイルを、すべての JSTL JAR ファイルとともに WAR ファイルから除去することのみです。ただし、JavaServer Faces 2.2 は Java Platform, Enterprise Edition (Java EE) プラットフォームの一部であるため、JavaServer Faces 実装が Java EE テクノロジー準拠の Web コンテナー上で実行される場合、Web アプリケーションはその実装をバンドルしません。JavaServer Faces 実装が Web アプリケーションと共にバンドルされている場合、それは無視されます。その理由は、プラットフォームによって提供される JavaServer Faces 実装が常に優先されるためです。
WebSphere Application Server 用の JSF ランタイムは、アプリケーション全体に対する単一クラス・ローダーの使用をサポートしていません。 その理由は、FacesConfig の初期化では、初期化中に JSF モジュールごとに単一クラス・ローダーが必要であるためです。アプリケーションに複数の Web モジュールが含まれており、それらのモジュールの 1 つが JSF モジュールである場合、このサポートは使用できません。そのため、アプリケーションに複数の Web モジュールと、少なくとも 1 つの JSF モジュールが含まれている場合には、複数のクラス・ローダーを使用する必要があります。
さまざまな JSF の実装を使用するために、WebSphere Application Server JSF エンジンは、アプリケーション・サーバー・ランタイムから SUN RI または Apache MyFaces のいずれを使用するかを決めます。 JSF エンジンが使用する実装を決めたら、 適切なリスナー・クラスが Web コンテナーに登録されます。com.sun.faces.ConfigureListener または org.apache.myfaces.StartupConfigureListener を web.xml ファイルに追加する必要はありません。
製品に組み込まれていないサード・パーティー製の JSF 実装を使用する場合、構成は MyFaces の設定のままにして、サード・パーティー製のリスナーを必須の web.xml ファイルに追加します。その後、サード・パーティー実装の JAR ファイルを、独立した 1 つの共有ライブラリーとして Web モジュールに追加します。独立した共有ライブラリーを使用して、Web アプリケーション・バージョンの JSF または JSTL クラスは、Application Server より先にロードします。