JSFでは、ユーザー・インタフェースでコンポーネントをJavaBeanに直接バインドできますが、最良の選択はJSFマネージドBeanを使用することです。
マネージドBeanは、アプリケーションで使用されるJavaBeansで、JSF構成ファイルfaces-config.xml
に登録されます。JSFアプリケーションを起動すると、この構成ファイルが解析されて、Beanが使用可能になります。マネージドBeanが参照されると(たとえば、コンポーネントのタグ属性の値としてEL式で参照されます。これは値バインディングと呼ばれます)、マネージドBean作成機能によって、Beanのデフォルトのコンストラクタ・メソッドがコールされて、Beanがインスタンス化されます。また、プロパティが宣言されると、宣言されたデフォルトの値が移入されます。
マネージドBeanを定義するには、JSF構成ファイルにエントリを追加して、Beanの参照に使用するシンボリック名を指定し、Beanのインスタンス化に使用するクラスを識別します。Beanのプロパティとメソッドを参照する必要がある場合は、シンボリック名を使用してBeanを識別します。Beanを直接参照するのではなく、シンボリック名を使用するため、表示はアプリケーション・ロジックとは切り離されます。これは、表示への影響なしにモデルを変更できることを意味します。
JSF構成ファイルにマネージドBeanを追加するには、ファイルでXMLを手動で編集するか、または構成ファイルの概要エディタを使用します。このエディタには、Beanのクラス・ファイル参照を検索するためのダイアログや参照機能があります。この例では、概要エディタと「マネージドBeanの作成」ダイアログを使用して、すでに作成したJavaクラスに対してマネージドBeanを追加します。
faces-config.xml
にマネージドBeanを追加する際、Beanクラスをまだ作成していない場合は、このダイアログを使用してBeanファイルを作成できます。
マネージドBeanは、faces-config.xml
ファイルの<managed-bean>
要素を使用して登録されます。マネージドBeanの作成後には、faces-config.xml
のXMLソース・エディタに次のコードが表示されます。
<managed-bean>
<managed-bean-name>personData</managed-bean-name>
<managed-bean-class>project1.PersonInfo</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
マネージドBeanのスコープによって、Beanが格納される有効範囲が決定します。Beanに対する有効なスコープは、次のとおりです。
application
: BeanはWebアプリケーションの実行中は使用可能です。これは、LDAPディレクトリなどのグローバルBeanに役立ちます。 session
: Beanは、クライアントのセッション中はクライアントで使用可能です。 request
: Beanは、インスタンス化されてから、レスポンスがクライアントに戻されるまで使用可能です。これは通常、現行ページの存続中です。 none
: Beanは、参照されるたびにインスタンス化されます。これは、Beanが別のBean内で参照される場合に役立ちます。
Copyright © 1997, 2009, Oracle. All rights reserved.