ADF Facesのサブフォームについて

ADF Facesのaf:subFormコンポーネントは、ページの独立した発行可能領域を表します。このaf:subFormaf:formまたはJSF HTMLのh:form内で使用すると、ページ上で複数のフォームを使用せずに、検証してモデルにプッシュするコンポーネントを制御できます。

各ページごとに単一のaf:formまたはh:formと必要数に応じたサブフォーム(またはaf:subFormコンポーネント)を使用することをお薦めします。サブフォームを使用するページが発行されると、ページの状態は1回のみ書き込まれ、ユーザーによるすべての編集内容が保存されます。af:formコンポーネントとは異なり、複数のサブフォーム間でIDを再利用できます。

af:subFormのコンテンツは、サブフォーム内の子コンポーネントまたはファセットがページを発行する場合にのみ検証および処理されます。サブフォームが未発行の場合は、子要素に対してリクエスト値の適用フェーズが実行され、プロセスの検証フェーズとモデル値の更新フェーズはスキップされます。サブフォームは、その子要素の1つが、リクエスト値の適用フェーズよりも後のフェーズでキューイングされるイベントを作成すると、発行済とみなされます。リクエスト値の適用フェーズよりも後にイベントをキューイングするコンポーネントの一般的な例には、immediate属性がFalseに設定されているコマンド・コンポーネント(commandButtonなど)があります。

af:subFormコンポーネントはdefault属性もサポートしています。この属性によって、サブフォームは、ページ内に他の発行済サブフォームがない場合のみ、発行済サブフォームのように動作します。これは、ページの主要なコンテンツがサブフォーム内にある場合に便利ですが、主要なコンテンツの外部にあるボタン(または他のコンポーネント)はページを発行します。その結果、サブフォームのコンテンツが完全には処理されない状態となります。ただし、サブフォームのdefaultプロパティが設定されている場合は、すべての子要素がリクエスト値の適用より後のイベントをキューイングしない場合でも、そのサブフォームは発行済となります。

サブフォームの詳細は、oracle.adf.view.faces.component.core.CoreSubformJavadocを参照してください。


ADF FacesおよびJSF HTMLでのaf:formとh:formの違いについて
その他のADF Facesコンポーネントの概要