詳細アイコン MDSの変更永続性とADF Facesコンポーネント

adf-config.xmlの概要エディタのタグ構成ページでは、コードを記述しなくても、リポジトリに保存するコンポーネントおよび関連する属性値を宣言できます。

タグ構成、adf-config.xmlエディタ

特定のADF Facesコンポーネントには、セッション変更永続性のサポートが組み込まれています。つまり、暗黙的な永続属性を介して永続性が提供され、ユーザー側でのコーディングやイベント処理は不要です。暗黙的な永続属性の例には、「パネル・スプリッタ」のsplitterPosition属性、「列」のwidth属性および詳細ヘッダーの表示と「詳細の表示」のdisclosed属性などがあります。暗黙的な永続属性およびコンポーネントの詳細リストは、Oracle Technology NetworkでADF Facesドキュメントを参照してください。

変更内容をMDSリポジトリに保存するように選択すると、デフォルトでは、暗黙的な永続属性の変更内容はすべてセッションに対して保存され、変更永続性フレームワークではアプリケーションのadf-config.xmlファイル内の構成と個々のJSFページが参照されて、変更内容をMDSリポジトリに保存するかどうかが判別されます。そのため、変更内容をMDSリポジトリに保存する場合は、暗黙的な永続コンポーネント属性値のうち、どれをアプリケーション用に保存するかを決定し、それをadf-config.xmlで指定する必要があります。

adf-config.xmlの概要エディタを使用してMDSに保存するコンポーネント属性値を宣言すると、JDeveloperにより必要なコードが追加されます。たとえば、次のコードは、columnwidth属性とpanelSplittersplitterPosition属性のみがMDSリポジトリに保存され、他の暗黙的な永続コンポーネント属性値(showDetailHeaderdisclosed属性など)は、アプリケーションのadf-config.xmlに指定されていないためリポジトリに保存されないことを示しています。

<taglib-config>
  <taglib uri="http://xmlns.oracle.com/adf/faces/rich">
    <tag name="column">
      <attribute name="width">
        <persist-changes>true</persist-changes>
      </attribute>
    </tag>
    <tag name="panelSplitter">
      <attribute name="splitterPosition">
        <persist-changes>true</persist-changes>
      </attribute>
    </tag> 
  <taglib>
</taglib-config>

注意: 自分でコードを編集する場合は、属性名とコンポーネント名に大/小文字を区別した正しい名前と正確なスペルを使用してください。

リポジトリに保存すると、パフォーマンスが低下します。このため、セッション間で保持する値のみを保存するようにアプリケーションを構成する必要があります。

adf-config.xmlで宣言された暗黙的永続コンポーネント属性値は、アプリケーションのページで使用されるすべての該当コンポーネントにグローバルに適用されます。特定のページ上で暗黙的な永続コンポーネント属性値を保存しない場合は、そのコンポーネントのdontPersist属性の値をページ上で直接定義します。同様に、暗黙的な永続コンポーネント属性値がadf-config.xmlでグローバルに宣言されていないコンポーネントをリポジトリに保存する場合は、その属性値をページの特定のコンポーネントのpersist属性で直接定義します。dontPersistおよびpersist属性には、MDSリポジトリへの保存から除外するかMDSリポジトリへの保存を許可する、永続属性名のリストを指定できます。

ADF Facesフレームワークで提供される暗黙的な変更に加えて、ADF Facesの変更永続性APIを使用して、コンポーネントに対する明示的な属性値の変更を作成し、その保存を処理できます。このように明示的な永続コンポーネント属性値を変更し、変更内容をMDSリポジトリに保存する場合は、それをアプリケーションのadf-config.xmlファイルでも(保存対象となる暗黙的な変更内容とともに)宣言する必要があります。