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のクラス・ファイル参照を検索するための作成ダイアログや参照機能があります。
この例では、「ページ・プロパティ」ダイアログからマネージドBeanを作成しています。「マネージドBeanの作成」ダイアログを使用してマネージドBeanを追加し、BeanのJavaクラスを生成するために「新規」をクリックすると、JDeveloperでは自動的に、必要な構成要素でfaces-config.xml
ファイルが更新されます。
マネージドBeanは、faces-config.xml
ファイルの<managed-bean>
要素を使用して登録されます。マネージドBeanの作成後には、faces-config.xml
のXMLソース・エディタに次のコードが表示されます。
<managed-bean>
<managed-bean-name>backing_login</managed-bean-name>
<managed-bean-class>project1.backing.LoginInfo</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<!--oracle-jdev-comment:managed-bean-jsp-link:1Login.jsp-->
</managed-bean>
コメント行<!--oracle-jdev-comment...-->
は、マネージドBeanがLogin.jsp
ファイルのバッキングBeanであることを示しています。
マネージドBeanのスコープによって、Beanが格納される有効範囲が決定します。Beanに対する有効なスコープは、次のとおりです。
application
: BeanはWebアプリケーションの実行中は使用可能です。これは、LDAPディレクトリなどのグローバルBeanに役立ちます。 session
: Beanは、クライアントのセッション中はクライアントで使用可能です。 request
: Beanは、インスタンス化されてから、レスポンスがクライアントに戻されるまで使用可能です。これは通常、現行ページの存続中です。 none
: Beanは、参照されるたびにインスタンス化されます。これは、Beanが別のBean内で参照される場合に役立ちます。マネージドBeanの作成後は、Login.jsp
ページのソース・コードに次のように表示されます。
<%--oracle-jdev-comment...--%>
。次に例を示します。<%--oracle-jdev-comment:auto-binding-backing-bean-name:backing_login--%>
binding
コードとid
コード。次に例を示します。<h:inputText binding="#{backing_login.inputText1}" id="inputText1"/>
JDeveloperでは、Javaソース・エディタでバッキングBeanファイルLoginInfo.java
も開き、ページに配置した各UIコンポーネント用に作成されたプロパティおよびアクセッサ・メソッドが表示されます。
Copyright © 1997, 2009, Oracle. All rights reserved.