Oracle ADFバインディング・フィルタについて

Oracle ADF Webアプリケーションは、Oracle ADFバインディング・フィルタを使用して、バインディング・コンテキストへのアクセスを必要とするHTTPリクエストを前処理します。

コントロール・バインディングをWebページに最初に追加したとき、あるいは、Strutsアプリケーションの場合はビジネス・サービス・メソッドをページ・フロー・ダイアグラムのデータ・アクションに最初にドラッグしたときに、JDeveloperではADFバインディング・フィルタが作成され、アプリケーションのweb.xmlファイルに自動的に設定されます。web.xmlファイルには、サーブレット・コンテキスト・パラメータ、ADFバインディング・フィルタ・クラスおよびフィルタ・マッピングの各要素が追加されます。

このトピックでは、次の項目について説明します。

ADFバインディング・フィルタの機能

バインディング・フィルタは、サーブレット・フィルタ(oracle.adf.model.servlet.ADFBindingFilterのインスタンス)であり、次の処理を実行します。

サーブレット・コンテキスト・パラメータ

サーブレット・コンテキスト・パラメータでは、アプリケーション・バインディング・コンテキストを定義するためにバインディング・フィルタが実行時に読み取るCPXファイルを指定します。サーブレット・コンテキスト・パラメータは、次の書式でweb.xmlに定義されます。

<context-param>
  <param-name>CpxFileName</param-name>
  <param-value>view.DataBindings</param-value>
</context-param>    

param-name要素は値CpxFileNameを含む必要があり、param-value要素はアプリケーションのCPXファイルの完全修飾名を含む必要があります。

ADFバインディング・フィルタ・クラス

ADFバインディング・フィルタはjavax.servlet.Filterインタフェースを実装し、web.xmlに次のように定義されます。

<filter>
   <filter-name>adfBindings</filter-name>
   <filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
</filter>    

Oracle ADFバインディング・フィルタは、javax.servlet.Filterインタフェースを実装します。

filter-name要素は値adfBindingsを含む必要があり、filter-class要素はバインディング・フィルタ・クラスの完全修飾名oracle.adf.model.servlet.ADFBindingFilterを含む必要があります。

フィルタ・マッピング

フィルタ・マッピングは、フィルタをWebアプリケーション内の静的なリソースまたはサーブレットにリンクします。マップされたリソースがリクエストされると、フィルタが起動します。フィルタ・マッピングは、web.xmlファイルに次の例のように定義されます。

<filter-mapping>
  <filter-name>adfBindings</filter-name>
  <url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
  <filter-name>adfBindings</filter-name>
  <url-pattern>*.jspx</url-pattern>
</filter-mapping>    

filter-name要素は値adfBindingsを含む必要があります。この例には、ページ書式タイプ.jspおよび.jspxの両方のフィルタ・マッピングがあることがわかります。

アプリケーションに複数のフィルタがある場合、web.xmlファイルでの記述は、必ず実行順になるようにしてください。実行時、フィルタは、このファイルに記述された順序でコールされます。


ADF固有のプロジェクト・ファイルについて
Oracle ADFバインディングについて

サーブレット・フィルタの詳細は、http://java.sun.com/products/servlet/docs.htmlでSun社の仕様を参照してください。

捕捉フィルタの詳細は、http://java.sun.com/blueprints/patterns/InterceptingFilter.htmlでSun社のペーパーを参照してください。

ADFバインディング・フィルタ・クラスのJavadocを表示する詳細は、次のトピックを参照してください。

oracle.adf.model.servlet.ADFBindingFilter