tell me more iconJSF マネージドBean

JSFを使用すると、ユーザー・インタフェース内のコンポーネントを任意のJavaBeanに直接バインドできますが、JSFマネージドBeanを 使用する方法が最適です。

マネージドBeanとは、JSF構成ファイル faces-config.xmlに登録されたアプリケーションによって使 用される任意のJavaBeansのことです。 JSFアプリケーションが起動すると、この構成ファイルを解析してBeansが使用可能になります。 マネージドBeanが(たとえば、EL式内で値式と呼ばれるコンポーネントのタグ属性の値として)参照されると、マネージドBean作成機能が、その Beanのデフォルトのコンストラクタ・メソッドを呼び出してBeansをインスタンス化します。 プロパティが宣言されている場合は、それらに宣言済みのデフォルト値が設定されます。

マネージドBeanを定義するには、JSF構成ファイルにエントリを追加します。具体的には、Beanを参照する際に使用するシンボリック名を指定 し、Beanをインスタンス化するときに使用するクラスを特定します。 このシンボリック名は、Beanのプロパティとメソッドを参照する必要がある際、Beanを識別するために使用します。 Beanを直接参照する代わりにシンボリック名を使用しているため、プレゼンテーションがアプリケーション・ロジックと分離され、ビューに影響を及ぼすこ となくモデルを変更できます。

JSF構成ファイルにマネージドBeanを追加できます。それには、同ファイル内のXMLを手動で編集する方法と、構成ファイルの概要エディタを使用する 方法があります。概要エディタには、各種ダイアログと、Beanのクラス・ファイル参照を検索するための参照機能が用意されています。 この例では、概要エディタとCreate Managed Beanダイアログを使用して、作成済みのJavaクラス用のマネージドBeanを追加します。

Create Managed Beanダイアログ

マネージドBeanを faces-config.xmlに追加するときにBeanクラスをまだ作成していない場合、 Beanファイルの作成を要求するダイアログを使用できます。

マネージドBeanは、 faces-config.xmlファイル内の <managed-bean>要 素によって登録されます。 マネージドBeanを作成したあとは、XMLソース・エディタで faces-config.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:Webアプリケーションが実行されている間、Beanが使用可能です。 このスコープは、LDAPディレクトリなどのグローバルなBeanに有用です。
  • session:クライアント・セッションの間、クライアントがBeanを使用できます。
  • request:インスタンス化されてからクライアントに応答が返されるまで、Beanが使用可能です。 これは通常、現在のページの存続期間です。
  • none:Beanは参照されるたびにインスタンス化されます。 これは、Beanが別のBean内で参照されている場合に有用です。