マネージドBeanを使用したデータへのJSFコンポーネントのバインドについて

JSFでは、UIコンポーネントまたはコンポーネントのタグ属性値をモデル・レイヤーのデータにバインドすることで、動的データを送信および表示します。このデータは、アプリケーション内のJavaBeanで保持できます。ただし、このBeanをマネージドBeanとして登録すると、JSF EL式を使用してページからアクセスされたときに、JSFアプリケーションによって自動的にインスタンス化されます。この結果、Beanのプロパティ値を表示でき、ページのデータが発行されたときに更新することもできます。

たとえば、次に示すように、従業員の名前を表示し、電話番号の更新ができるWebページがあるとします。

名前を表示し、ユーザーによる電話番号の更新を可能にするフォーム

このフォームは、2つのマネージドBeanでサポートされています。employee Beanは、従業員の名前や電話番号などのプロパティ値を表示および移入するために使用されるデータ転送オブジェクトです。emp_backing Beanはフォーム用のバッキングBeanです。バッキングBeanは通常、ページのフォームに固有であり、イベント処理やナビゲーションに関するメソッドを提供します。

フォームが発行されると、emp_backing Beanによってsubmit()メソッドが実行され、このメソッドでempマネージドBeanが処理され、データベースが更新されます。このフォームでは2つのマネージドBeanが使用されていますが、かわりに、プロパティempnamehomephoneをバッキングBeanに組み込む方法もあります。この場合は、submit()メソッドでデータベースを更新するためのロジックを提供する必要があります。すでに述べたように、マネージドBeanにはあらゆる種類のBeanを使用でき、そのバインディングは双方向であり、マネージドBeanのプロパティまたはメソッドに適用できます。詳細は、「マネージドBeanについて」を参照してください。式の作成手順は、「式ビルダーを使用したEL式の作成」を参照してください。

タグ属性をBeanのプロパティにバインドするか、またはコンポーネント・インスタンスをBeanまたはBeanのプロパティにバインドできます。属性をバインドすると、Beanの関連するプロパティで属性の値が保持されます。また、値は、コンポーネントのライフサイクルのUPDATE_MODEL_VALUESフェーズ時に更新されます。コンポーネント・インスタンスをBeanまたはBeanのプロパティ値にバインドすると、コンポーネントのタグ属性値を動的に変更できます。詳細は、「タグ属性のバインドとコンポーネント・インスタンスのバインドの比較」を参照してください。

JDeveloperでは、JSPのすべてのコンポーネントをバッキングBeanに自動的にバインドできます。詳細は、「バッキングBeanについて」および「自動コンポーネント・バインディングを使用したバッキングBeanの作成」を参照してください。


マネージドBeanの使用
JSF EL式の作成
複雑なデータ・バインド・コンポーネントの使用