変更永続性に関するADF Faces APIについて

ADF Facesでは、コンポーネントの変更を複数のリクエストにわたって存続できます。たとえば、元のページに戻ったときに、表のソート順やツリーの開いた状態を自動的に回復できます。変更永続性をサポートするためのADF Faces APIは、パッケージoracle.adf.view.faces.changeに格納されています。

要約すると、変更とは保持する必要があるコンポーネントの特性です。変更は、コンポーネントとそれに関連するレンダラの両方で作成され、コンポーネントの状態の変化を反映できます。変更は、ComponentChangeクラスのインスタンスによって記述されます。このクラスには、次の要素があります。

ADF Facesでは、ユーザー操作によって直接生じた変化に対して変更が自動的に生成されますが、コンポーネント値の変更に対しては生成されません(これはJSFのライフサイクルで処理されます)。ChangeManagerは、変化の蓄積を管理し、その永続性も処理します。アプリケーションにはChangeManagerクラスのシングル・インスタンスがあり(AdfFacesContextクラスを介してアクセス可能)、次の処理を担当します。

ChangeManagerはアプリケーション・スコープですが、セッションとリクエスト・スコープの管理状態とともに機能し、セッション・スコープでの変更を保存することで変更永続性を処理します。変更は、変更が追加された同じ順序で、後続するビューの作成時に自動的に適用されます。

変更を保持するために必要なコンポーネント(またはレンダラ)の処理は、ComponentChangeインスタンスの作成、ChangeManagerの取得、およびComponentChangeの登録のみです。すべてのChangeクラスの詳細は、ADF FacesのJavadocを参照してください。

adf-faces-config.xmlのChangeManagerインスタンスを構成するには、次のようにします。

コンポーネント属性を変更した後のページのリストア、コンポーネントの追加、変更、順序変更、およびファセットの追加と削除を行うために、暗黙的および明示的な変更登録を使用する例については、ADF Faces変更永続性のデモ・ファイルも参照してください。


ADF Facesの利点について