tell me more iconJSFマネージドBean

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

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

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

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

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

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

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

マネージドBeanは、 faces-config.xmlファイル内の <managed-bean>要素によって登録されます。 マネージドBeanを作成したあとは、XMLソース・エディタで faces-config.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>
                      

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

  • application:Webアプリケーションが実行されている間、Beanが使用可能です。 このスコープは、LDAPディレクトリなどのグローバルなBeanに有用です。
  • session:クライアント・セッションの間、クライアントがBeanを使用できます。
  • request:インスタンス化されてからクライアントに応答が返されるまで、Beanが使用可能です。 これは通常、現在のページの存続期間です。
  • none:Beanは参照されるたびにインスタンス化されます。 これは、Beanが別のBean内で参照されている場合に有用です。

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

マネージドBeanの作成が完了すると、 Start.jspページのソース・コードに次のコードが追加されます。

  • 自動バインディング用のコメント行 <!--oracle-jdev-comment...-->。以下に例を挙げます。
                                 
    oracle-jdev-comment:auto-binding-backing-bean-name:backing_start
                              
  • ページ上の各UIコンポーネントに追加された bindingid。以下に例を挙げます。
                                 
    <h:outputText binding="#{backing_start.outputText1}" id="outputText1"/>
                              

Javaソース・エディタで、Oracle JDeveloperによりバッキングBeanファイル StartInfo.javaが開きます。これにより、ページ上の各UIコンポーネント用に作成されたプロパティとアクセッサ・メソッドを確認できます。