JavaServer Faces (JSF) は、Java ベースの Web アプリケーシ ョンの開発を容易にするユーザー・インターフェース・フレームワークまた はアプリケーション・プログラミング・インターフェース (API) です。 WebSphere Application Server バージョン 6.1 は JavaServer Faces 1.1 をランタイム・レベルでサポートしています。このため、JSF を使用すると、ランタイム・バイナリーを Web アプリケーションに含める必要がなくなるため、Web アプリケーションのサイズが削減されます。
Sun JSF Reference Implementation は、WebSphere Application Server で JSF サポートに使用されるコードのファウンデーションを提供します。 ただし、オープン・ソースの API が Application Server ランタイムに組み込まれるときに 問題が起こる可能性があるため、Jakarta API への一部の依存が除去され、Application Server 固有のソリューションと置換されています。 例えば、Application Server ランタイムに組み込まれると、 これらのオープン・ソースの API は Application Server 内にインストールされたすべてのアプリケーションで使用可能なため、 バージョン管理、サポート、および法的な問題を引き起こします。 Application Server によって提供されるバージョンの JSF ランタイムは、 標準のランタイム・ライブラリーのロケーションにあり、 JSF API を活用するすべての Web アプリケーションに使用可能です。 JSF サーブレットのロードは、 ランタイムが Web アプリケーションでパッケージされるのと同じ方法で機能します。
JSF の仕様関連クラス (javax.faces.*) および JSF Sun 参照インプリメンテーションの IBM 変更バージョンが Application Server ランタイムにパッケージされています。
通常、この API/Framework を活用する Web アプリケーションは、JSF API およびインプリメンテーション JAR ファイルを Web アーカイブ (WAR) フ ァイル内に組み込みます。 この組み込みは、 これらの Web アプリケーションが WebSphere Application Server 内でデプロイおよび実行される場合には、 必要ありません。 必要となるのは、これらの JAR を、 WAR ファイルからのすべての JSTL JAR ファイルと共に除去することのみです。
Web アプリケーションが、内部に組み込まれた JSF または JSTL の独自の バージョンの使用を必要とする場合は、Web アプリケーションのクラス・ローダー・モードを変更してもかまいません。 デフォルトでは、これは PARENT_FIRST モードに設定されています。 この値を PARENT_LAST に変更すると、 JSF または JSTL クラスの Web アプリケーションを WebSphere の前にロードすることができます。
Sun Reference Implementation は、 Mozilla からのユーティリティー・クラスを使用し、メソッド・パラメータ ーに対してアサーション・スタイル呼び出しを実行します。 faces assert クラスは同等の機能を提供します。JDK 1.4 で使用可能なアサーション機能 を利用するというオプションは、 アサーション・コード・サポートをオンにするために JVM レベル・パラメー ターを提供する必要性があるため可能ではありません。 FacesAssert クラスには、静的メソッドのみがあり、ライフ・サイクルはありません。
FacesAssert |
+ notEmpty ( [in] str : String ) : boolean |
+ nonNull ( [in] isNull : Object ) : boolean |
+ wsAssert ( [in] message : String ) : boolean |
+ wsAssert ([in] argument : boolean , [in] message : String ) : boolean |
FacesBeanUtils クラスは、 Jakarta Commons BeanUtils API で使用されるメソッドのために静的メソッド置換を提供します。FacesBeanUtils クラスにはライフ・サイクルはありません。
FacesBeanUtils |
+ getProperty ( [in] bean : Object , [in] property : String ) : Object |
+ getPropertyType ( [in] bean : Object , [in] property : String ) : Class |
+ getSimpleProperty ( [in] bean : Object , [in] property : String , [in] value : Object ) |
+ getProperty ( [in] bean : Object , [in] property : String , [in] value : Object ) |
+ convertFromString ( [in] value : String , [in] valueClass : Class ) : Object |
+ convert ([in] targetType : Class , [in] bean : String ) : Object |
JavaServer Faces の Sun Reference Implementation は、 Jakarta Commons Digester API を使用して、Faces 構成ファイルを構文解析 します。 XML SAX ベースのパーサーは、Application Server に提供されます。Digester コードは、 リフレクション・コードを使用して、 その構文解析を実行します。これは、大容量の構成ファイルを構文解析すると、非常 に遅くなります。 下の図の FaceConfigParser クラスは、Faces 構成 DTD に書き込まれるカ スタムであるため、大容量の構成ファイルをより速く構文解析します。