JSFでは、UIコンポーネントまたはコンポーネントのタグ属性値をモデル・レイヤーのデータにバインドすることで、動的データを送信および表示します。このデータは、アプリケーション内のJavaBeanで保持できます。ただし、このBeanをマネージドBeanとして登録すると、JSF EL式を使用してページからアクセスされたときに、JSFアプリケーションによって自動的にインスタンス化されます。この結果、Beanのプロパティ値を表示でき、ページのデータが発行されたときに更新することもできます。
ADFデータ・コントロールを使用すると、JSFコンポーネントとADF Facesコンポーネントをモデル・レイヤーのデータにバインドすることもできます。これらのコントロールでは、アプリケーションのバックエンドでのデータ・アクセスが簡素化されます。詳細は、「JSFページとADFモデル・レイヤーの統合」を参照してください。
たとえば、次に示すように、従業員の名前を表示し、電話番号の更新ができるWebページがあるとします。
このフォームは、2つのマネージドBeanでサポートされています。employee
Beanは、従業員の名前や電話番号などのプロパティ値を表示および移入するために使用されるデータ転送オブジェクトです。emp_backing
Beanはフォーム用のバッキングBeanです。バッキングBeanは通常、ページのフォームに固有であり、イベント処理やナビゲーションに関するメソッドを提供します。
outputLabel
タグを使用して表示されます。タグのValue
属性の値は、文字列Employee Nameです(ローカライゼーションを容易にするために、リソース・バンドルのプロパティに値をバインドする方法もあります。詳細は、「JSFでのローカライズ・データおよびメッセージの使用について」を参照してください)。
outputText
タグを使用して表示されます。タグのValue
属性の値は#{emp.empname}
です。この式によって、emp
Beanのempname
プロパティの値が評価されます。
outputLabel
タグを使用して表示されます。値は文字列Home Phoneです。
inputText
タグを使用して表示されます。タグのValue
属性の値は#{emp.homephone}
です。この式によって、emp
Beanのhomephone
プロパティが評価されます。式バインディングは両方向に機能することに注意してください。データの表示またはデータの収集が可能です。タグのvalueChangeListener
属性の値は#{emp_backing.valueChange}
です。これは、値が変更された場合に、emp_backing
マネージドBeanのvalueChange
メソッドがコールされることを意味します。
commandButton
タグを使用して表示されます。値は文字列Submit Changesです。action
属性の値は#{emp_backing.submit}
です。この式によって、emp_backing
Beanのsubmit()
の実行が評価されます。
フォームが発行されると、emp_backing
Beanによってsubmit()
メソッドが実行され、このメソッドでemp
マネージドBeanが処理され、データベースが更新されます。このフォームでは2つのマネージドBeanが使用されていますが、かわりに、プロパティempname
とhomephone
をバッキングBeanに組み込む方法もあります。この場合は、submit()
メソッドでデータベースを更新するためのロジックを提供する必要があります。すでに述べたように、マネージドBeanにはあらゆる種類のBeanを使用でき、そのバインディングは双方向であり、マネージドBeanのプロパティまたはメソッドに適用できます。詳細は、「マネージドBeanについて」を参照してください。式の作成手順は、「式ビルダーを使用したEL式の作成」を参照してください。
タグ属性をBeanのプロパティにバインドするか、またはコンポーネント・インスタンスをBeanまたはBeanのプロパティにバインドできます。属性をバインドすると、Beanの関連するプロパティで属性の値が保持されます。また、値は、コンポーネントのライフサイクルのUPDATE_MODEL_VALUES
フェーズ時に更新されます。コンポーネント・インスタンスをBeanまたはBeanのプロパティ値にバインドすると、コンポーネントのタグ属性値を動的に変更できます。詳細は、「タグ属性のバインドとコンポーネント・インスタンスのバインドの比較」を参照してください。
JDeveloperでは、JSPのすべてのコンポーネントをバッキングBeanに自動的にバインドできます。詳細は、「バッキングBeanについて」および「自動コンポーネント・バインディングを使用したバッキングBeanの作成」を参照してください。
ADFデータ・コントロールを使用すると、JSFコンポーネントをデータにバインドすることもできます。これらのコントロールでは、アプリケーションのバックエンドでのデータ・アクセスが簡素化されます。詳細は、「JSFページとADFモデル・レイヤーの統合」を参照してください。
マネージドBeanの使用
JSF EL式の作成
複雑なデータ・バインド・コンポーネントの使用
Copyright © 1997, 2006, Oracle. All rights reserved.