マネージドBeanは、アプリケーションで使用されるJavaBeansで、JSFのfaces-config.xml
ファイルに登録されます。JSFアプリケーションを起動すると、この構成ファイルが解析されて、Beanが使用可能になります。マネージドBeanが参照されると(たとえば、コンポーネントのタグ属性の値としてEL式で参照されます。これは値バインディングと呼ばれます。)、マネージドBean作成機能によって、Beanのデフォルトのコンストラクタ・メソッドがコールされて、Beanがインスタンス化されます。また、プロパティが宣言されると、宣言されたデフォルトの値が移入されます。
マネージドBeanは、faces-config.xml
ファイルの<managed-bean>
要素を使用して登録され、次の要素が含まれています。
faces-config.xml
ファイルでBeanを宣言すると、設定に基づいてスケルトン・クラスを生成できます。
set
メソッドは、Beanの作成時に1度実行されます。マネージドBeanの管理プロパティを構成するときは、プロパティ名、そのクラス・タイプおよびそのデフォルト値を宣言します。デフォルトをNULLにする必要がある場合は、<null-value>
要素を使用します。値は、JSF EL式で参照する別のBeanにすることもできます。親Beanが初期化されると、値に宣言されているネストされたBeanも作成および初期化されます。Beanのネスト時には、そのBeanがfaces-config.xml
に存在し、有効範囲に互換性があることを確認する必要があります。Beanの有効範囲 | 参照可能なBeanの有効範囲 |
---|---|
none | none |
application | none、application |
session | none、application、session |
request | none、application、session、request |
マネージドBeanおよびマネージドBeanのプロパティは、リストまたはマップとして初期化することもできます。ただし、BeanまたはプロパティのタイプがList
またはMap
であるか、あるいはjava.util.Map
またはjava.util.List
を実装している必要があります。リストまたはマップ内の値のデフォルト・タイプは、<value-class>
または<key-class>
要素を使用して別のクラスが宣言されていないかぎり、java.lang.String
です。
リストの場合、次の例に示すように、<list-entries>
要素がリスト内の各値に対するコンテナとして動作します。このマネージドBeanはリストであることに注意してください。
<managed-bean>
<managed-bean-name>options</managed-bean-name>
<managed-bean-class>java.util.ArrayList</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<list-entries>
<value>Text Only</value>
<value>Text + HTML</value>
<value>HTML Only</value>
</list-entries>
</managed-bean>
マップの場合、次の例に示すように、個々の<map-entry>
要素でマップ内のキー/値のペアが定義されます。この例では、管理プロパティがマップであること、およびキーが整数であるため、<key-class>
要素を宣言する必要があることに注意してください。
<managed-bean>
<managed-bean-name>errorcodes</managed-bean-name>
<managed-bean-class>com.jsf.databeans.ErrorCodes</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<managed-property>
<property-name>error</property-name>
<property-class>java.lang.String</property-class>
<map-entries>
<key-class>java.lang.Integer</key-class>
<map-entry>
<key>300</key>
<value>Invalid entry</value>
</map-entry>
<map-entry>
<key>400</key>
<value>No such value</value>
</map-entry>
<map-entry>
<key>500</key>
<value>Internal server error</value>
</map-entry>
</map-entries>
</managed-property>
</managed-bean>
バッキングBeanについて
値バインディングについて
メソッド・バインディングについて
マネージドBeanおよびバッキングBeanの開発
JSF構成エディタを使用したマネージドBeanの作成
マネージドBeanの構成
JSF EL式の作成
Copyright © 1997, 2006, Oracle. All rights reserved.