詳細アイコン JSFマネージドBean

JSFでは、ユーザー・インタフェースでコンポーネントをJavaBeanに直接バインドできますが、最良の選択はJSFマネージドBeanを使用することです。

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

マネージドBeanを定義するには、JSF構成ファイルfaces-config.xmlにエントリを追加して、Beanの参照に使用するシンボリック名を指定し、Beanのインスタンス化に使用するクラスを識別します。Beanのプロパティとメソッドを参照する必要がある場合は、シンボリック名を使用してBeanを識別します。Beanを直接参照するのではなく、シンボリック名を使用するため、表示はアプリケーション・ロジックとは切り離されます。これは、表示への影響なしにモデルを変更できることを意味します。

マネージドBeanは、ファイルでXMLを手動で編集するか、構成ファイルの概要エディタを使用してfaces-config.xmlファイルにいつでも追加できます。このエディタには、Beanのクラス・ファイル参照を検索するための作成ダイアログや参照機能があります。

JSF構成ファイルの概要エディタ

この例では、「ページ・プロパティ」ダイアログからマネージドBeanを作成しています。「マネージドBeanの作成」ダイアログを使用してマネージドBeanを追加し、BeanのJavaクラスを生成するために「新規」をクリックすると、JDeveloperでは自動的に、必要な構成要素でfaces-config.xmlファイルが更新されます。

IDE、「ページ・プロパティ」ダイアログ、マネージドBeanの作成

マネージドBeanは、faces-config.xmlファイルの<managed-bean>要素を使用して登録されます。マネージドBeanの作成後には、faces-config.xmlのXMLソース・エディタに次のコードが表示されます。

<managed-bean>
  <managed-bean-name>backing_start</managed-bean-name>
  <managed-bean-class>project1.backing.StartInfo</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  <!--oracle-jdev-comment:managed-bean-jsp-link:1Start.jsp-->
</managed-bean> 

コメント行<!--oracle-jdev-comment...-->は、マネージドBeanがStart.jspページのバッキングBeanであることを示しています。

マネージドBeanのスコープによって、Beanが格納される有効範囲が決定します。Beanに対する有効なスコープは、次のとおりです。

マネージドBeanの作成後は、Start.jspページのソース・コードに次のように表示されます。

JDeveloperでは、Javaソース・エディタでバッキングBeanファイルStartInfo.javaも開き、ページに配置した各UIコンポーネントに対して作成されたプロパティとアクセッサ・メソッドが表示されます。