プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle ADFデータ・コントロールによるアプリケーションの開発
12c (12.2.1.2.0)
E82916-01
目次へ移動
目次

前
前へ
次
次へ

1 ADFモデルの概要

この章では、データ・コントロールの簡単な概要と、Oracle ADFアプリケーションによるビジネス・サービスからユーザー・インタフェースへのデータのバインディングについて説明します。データ・コントロールのタイプについて説明した後、これらのデータ・コントロールを使用した、データバインドされたUIコンポーネントの作成について説明します。

この章の内容は次のとおりです。

このマニュアルおよびこの他のマニュアルに、なじみのない用語が出てきた場合は、用語集で定義を確認してください。

1.1 ADFモデルについて

ADFモデルは宣言的なデータ・バインディング機能で、コードを使用せずにユーザー・インタフェースをビジネス・サービスにバインドする統一されたアプローチを提供します。ADFモデルによって、ユーザー・インタフェース・テクノロジとビジネス・サービス実装の分離を可能にする2つの概念(データ・コントロールと宣言的ADFバインディング)が実装されています。図1-1は、ADFモデルがADFアプリケーション・アーキテクチャにどのように適合しているかを示しています。

図1-1 ADFモデルを含むADFアーキテクチャ

この図は周囲のテキストで説明しています

データ・コントロールでは、関連するプロパティ、メソッド、タイプの情報を含め、サービスの操作とデータ・コレクションを表す標準のメタデータ・インタフェースを使用してビジネス・サービスの実装技術を抽象化します。これらの操作とコレクションは、データ・コントロール・オブジェクトとして公開されます。開発者とUI設計者は、これらを使用してデータバインドされたUIコンポーネントを作成でき、基礎となるビジネス・サービスのタイプについて考慮する必要はほとんどありません。

宣言的なバインディングによって、データ・コントロール内のデータ・コレクションからのデータ・アクセスの詳細と、その操作の実行が抽象化されます。宣言的なバインディング・オブジェクトには、次の3つの基本的なカテゴリがあります。

  • 値バインディング: データを表示するUIコンポーネントで使用します。値のバインディングは、単純なテキスト・フィールドで使用する最も基本的なものから、リスト、表、ツリーでのUIコントロールのニーズをサポートするような、より高度なリスト、ツリーのバインディングまで、様々な種類があります。

  • アクション・バインディング: ハイパーリンクやボタンなどのUIコンポーネントで使用され、コードを記述することなく、データ・コレクションやデータ・コントロールの組込み操作またはカスタム操作を実行します。

  • 実行可能バインディング: 実行可能バインディングには、イテレータ・バインディングなどが含まれ、データ・コレクションのスクロール処理とページング、および概要情報から詳細情報へのドリルダウンを可能にするユーザー・インタフェースを容易に作成できます。また、実行可能バインディングには、ページ内で一連のページの検索およびネストを可能にするバインディングや、操作を即時実行するためのバインディングも含まれます。

実行時に、ADFモデル・レイヤーによって、適切なXMLファイルからデータ・コントロールおよびバインディングを記述した情報が読み取られ、ユーザー・インタフェースとビジネス・サービスの双方向の結合が実装されます。

ADFモデル・レイヤーをデータのバインドに使用するには、サービスに対してデータ・コントロールを作成する必要があります。データ・コントロールが「データ・コントロール」パネルのツリー階層として表示され、ツリーの各サブノードにコレクション、操作、メソッド、属性などの要素が表されます。その後、Webページのビジュアル・エディタまたはその他のユーザー・インタフェース・コンポーネントに、それらのサブノードをドラッグ・アンド・ドロップすることにより、データバインドされたコンポーネントを作成します。データ・コントロールからサブノードをページにドラッグすると、JDeveloperによって、ページからサービスへのバインディングを表すメタデータが自動的に作成されます。

たとえば、EJBセッション・ファサードを使用するアプリケーションでは、開発者はファサードのデータ・コントロールを作成できます。その後、JDeveloperの「データ・コントロール」パネル(図1-2を参照)に表示されたデータ・コントロールの表現を使用して、セッション・ファサードに自動的にバインドされるUIコンポーネントを作成できます。

図1-2 「データ・コントロール」パネル

この図は周囲のテキストで説明しています

ページのUIコンポーネントをサポートするバインディングのグループは、ページ定義ファイルというページ固有のXMLファイルに記述されます。ADFモデル・レイヤーでは実行時にこのファイルが使用され、ページのバインディングがインスタンス化されます。これらのバインディングは、バインディング・コンテナと呼ばれるリクエスト・スコープ・マップに保持されます。

JSFアプリケーションでは、バインディング・コンテナは、各ページ・リクエスト時にEL式#{bindings}を使用してアクセスできます。この式により、現在のページのバインディング・コンテナが常に評価されます。

次の例は、フォーム内のチェック・ボックスをOrdersSessionEJBLocalデータ・コントロールのorderFilled属性にバインディングするために使用されるコードを示します。

<af:selectBooleanCheckbox value="#{bindings.orderFilled.inputValue}"
                   label="#{bindings.orderFilled.label}"
                   shortDesc="#{bindings.orderFilled.hints.tooltip}" id="sbc1"/>

1.2 データ・コントロールのタイプ

データ・コントロールの実装には様々なものがあり、これらは次に示すカテゴリに分けることができます。

  • ADFビジネス・コンポーネント・アプリケーション・モジュール

    ADFビジネス・コンポーネントを使用するアプリケーションでは、アプリケーション・モジュール作成時に自動的にデータ・コントロールが作成され、データ・コントロールにはアプリケーション・モジュールの全機能が含まれます。

    ADFビジネス・コンポーネント・アプリケーション・モジュールを使用するための詳細なガイドについては、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「アプリケーション・モジュールによるビジネス・サービス」を参照してください。

  • データ・コントロール・フレームワークを両方とも拡張するデータ・コントロール(「アダプタ・データ・コントロール」)

    これにはEJB、Bean、Webサービス(SOAPベースおよびRESTful)、およびURLのデータ・コントロールが含まれ、これらはこのガイドの説明対象です。

  • Beanデータ・コントロール・タイプに基づくカスタム・データ・コントロール

  • データ・コントロール・フレームワークに基づき、Beanデータ・コントロールを拡張しないカスタム・データ・コントロール

  • アダプタ・データ・コントロール・フレームワークを拡張しないカスタム・データ・コントロール

    このカテゴリは主に、アダプタ・フレームワークが開発される前に開発されたデータ・コントロールからなります。

このガイドでは主に、アダプタ・データ・コントロールの作成と使用を中心に説明しますが、情報の大部分はADFビジネス・コンポーネント・データ・コントロールにも適用されます。

1.3 このガイドで説明しないデータ・コントロール

次に、このガイドでは説明しないデータ・コントロールのタイプをいくつか示します。

  • プレースホルダ・データ・コントロール。これは空のデータ・コントロールで、まだ具体的な作業対象になるビジネス・サービスがないユーザーが、データバインドされたページを設計するために使用します。プレースホルダ・データ・コントロールを使用してデータバインドされたコンポーネントを設計し、ビジネス・サービスが提供された後、コンポーネントをこれらのビジネス・サービスに再バインドできます。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「プレースホルダ・データ・コントロールによるページの設計」を参照してください。

  • JMXデータ・コントロール。これを使用して、Java Management Extension (JMX) MBeanに基づくデータ・コントロールを作成できます。

  • JavaBeanデータ・コントロール。Beanデータ・コントロールと混同しないでください。JavaBeanデータ・コントロールは、アダプタ・データ・コントロール・フレームワークより前に開発されたデータ・コントロール・タイプです。問合せ可能コレクションのサポートなど、後からBeanデータ・コントロールに組み込まれた主要機能の多くが備わっていません。

  • より広範囲のFusion Middlewareスタックに含まれる、その他のデータ・コントロール(BAMデータ・コントロールなど)。

1.4 アダプタ・フレームワークを使用しないデータ・コントロールに関する必知事項

レガシー・データ・コントロールを使用している場合は、アダプタ・データ・コントロール・フレームワークに基づく新しいデータ・コントロールへの移行を検討することをお薦めします。このフレームワークは、検証ルールや値リスト・オブジェクトなど、多数の便利な機能を備えています。アダプタ・フレームワークを使用して、新しいデータ・コントロール・タイプを最初から作成することも、既存のデータ・コントロール・タイプ(Beanデータ・コントロール・タイプなど)のいずれかを拡張することもできます。