ヘッダーをスキップ
Oracle Application Development Framework Forms/4GL開発者のための開発者ガイド
10g(10.1.3.0)
B40013-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

A ADF XMLファイルのリファレンス

この付録は、データ・モデル・プロジェクトとユーザー・インタフェース・プロジェクトで作成されるOracle ADFメタデータ・ファイルのリファレンスです。この情報は、これらのファイルに定義されたメタデータの内容を編集する場合に使用できます。

この付録には、次の項が含まれます。

A.1 ADFメタデータ・ファイルについて

Oracle ADFアプリケーションのメタデータ・ファイルは、アプリケーションによって使用される構造化XMLファイルです。次の目的で使用されます。

ADFバインディングの場合、バインディング固有のエディタを使用して、バインディング・オブジェクトの実行時プロパティをカスタマイズできます。バインディング固有のエディタを開くには、ページ定義ファイルの構造ウィンドウを表示して、ポップアップ・メニューから「プロパティ」を選択します。

また、JDeveloperのXMLエディタでは、任意のメタデータ・ファイルの内容を参照および編集できます。これらのファイルを操作する最も簡単な方法は、構造ウィンドウとプロパティ・インスペクタを使用することです。構造ウィンドウで要素を選択し、プロパティ・インスペクタで(通常はドロップダウン・メニュー・オプションを選択して)その要素の属性値を定義します。このリファレンスは、Oracle ADF固有の要素に選択できるオプションを理解するために使用できます。

A.2 ADFファイルの概要図

Oracle ADFメタデータ・ファイル間の関係により、モデル・データ・プロジェクトとユーザー・インタフェース・プロジェクト間の依存性が定義されます。これらの依存性は、各ファイルのXML要素内のファイル参照として定義されます。

図A-1は、ADF Business Componentsアプリケーション・モジュールをJSF Webページに対するサービス・インタフェースとして使用しているOracle ADFアプリケーションで操作する可能性のあるXMLメタデータ・ファイルの階層構造を示しています。

図A-1 ADF BCベースのWebアプリケーションにおけるOracle ADFファイル階層の概要

Oracle ADFファイル階層のイメージ

A.2.1 Oracle ADFデータ・コントロール・ファイル

ADF Business Componentsアプリケーションの場合、データ・コントロール実装ファイルはアプリケーションに含まれます。データ・コントロール用の参照は、アプリケーション・モジュールおよびビュー・オブジェクトXMLコンポーネントのディスクリプタ・ファイルによって提供されます。これらのファイルはbc4j.xcfgファイル(A.4項を参照)とともに、データ・コントロールに必要な情報を提供します。

1つのプロジェクトでADF Business Componentsを使用し、別のプロジェクトでADF Business Components以外のデータ・コントロール(SRDemoFAQデータ・コントロールなど)を使用するワークスペースは、DataControls.dcxファイルと、サポート用の<sessionbeanname>.xmlファイルおよび<beanname>.xmlファイルを持つ場合があります。ADF Business Components以外のデータ・コントロールの詳細は、『Oracle Application Development Framework Developers Guide 10g for J2EE Developers』を参照してください。

A.2.2 Oracle ADFデータ・バインディング・ファイル

Oracle ADFアプリケーションの標準的な次のXML構成ファイルは、ユーザー・インタフェース・プロジェクトに表示されます。

  • DataBindings.cpx: このファイルには、pageMap(ページ定義参照)とデータ・コントロール参照が含まれます。このファイルは、(構造ウィンドウまたはデータ・コントロール・パレットで)UIコンポーネントのデータ・バインディングを最初に作成したときに作成されます。DataBindings.cpxファイルでは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義します。バインディング・コンテキストは、アプリケーション全体にわたるバインディングへのアクセスを提供します。DataBindings.cpxファイルには、各WebページのOracle ADFバインディングのメタデータを定義する<pagename>PageDef.xmlファイルへの参照も含まれます。

    DataBindings.cpxファイルで構成可能な要素の詳細は、A.5項「DataBindings.cpx」を参照してください。

  • <pagename>PageDef.xml: ページ定義XMLファイルです。このファイルは、データ・コントロール・パレットまたは構造ウィンドウを使用して新規Webページを設計するたびに作成されます。これらのXMLファイルには、WebページのUIコンポーネントにデータを移入するバインディングを作成するためのメタデータが含まれます。ADFバインディングを参照するすべてのWebページに対して、バインディング定義を含む専用のページ定義ファイルが必要です。

    <pagename>PageDef.xmlファイルで構成可能な要素の詳細は、A.6項「<pageName>PageDef.xml」を参照してください。

A.2.3 Oracle ADF FacesおよびWeb構成ファイル

JSFアプリケーションに必要とされる次のXML構成ファイルは、ユーザー・インタフェース・プロジェクトに表示されます。

  • web.xml: アプリケーション構成の一部は、J2EEアプリケーション・デプロイメント・ディスクリプタのweb.xmlの内容によって決定されます。web.xmlファイルでは、サーバーが認識する必要のあるアプリケーションのすべての設定を定義します。このファイルで、ADFBindingFilterを設定してOracle ADFデータ・バインディングを構成します。追加の実行時設定には、サーブレットの実行時パラメータと初期化パラメータ、カスタム・タグ・ライブラリの場所、およびセキュリティ設定が含まれます。

    ADFデータ・バインディングおよびJSF構成オプションの詳細は、A.7項「web.xml」を参照してください。

  • faces-config.xml: このJSF構成ファイルでは、バリデータ、コンバータ、マネージドBean、ナビゲーション・ルールなどのJSFアプリケーション・リソースを登録します。アプリケーションには複数の構成リソース・ファイルを割り当て、任意の名前を付けることができますが、通常、ファイル名にはfaces-config.xmlを使用します。

    JSF構成オプションの詳細は、A.9項「faces-config.xml」を参照してください。

  • adf-faces-config.xml: このADF Faces構成ファイルでは、アクセシビリティ・レベル、カスタム・スキン、拡張デバッグ機能、右から左へのページ・レンダリングなど、ADF Faces固有のユーザー・インタフェース機能を構成します。

    ADF Faces構成オプションの詳細は、A.10項「adf-faces-config.xml」を参照してください。

A.3 ADFファイルの構文図

図A-2は、ADFアプリケーション・モジュールをADF Business Componentsに対するサービス・インタフェースとして使用しているWebアプリケーションで操作する可能性のあるXMLメタデータ・ファイルの階層構造を示しています。実行時には、これらのファイルから作成されたオブジェクトが次の順序で対話を行います。

  1. ADFのデータ・バインドされたWebページに対する最初のリクエストが発生すると、サーブレットは、web.xmlファイルに設定されているOracle ADFサーブレット・フィルタのADFBindingFilterを登録します。

  2. バインディング・フィルタは、web.xmlファイルからCpxFileName初期化パラメータを読み取ってバインディング・コンテキストを作成します。

  3. バインディング・コンテキストは、DataBindings.cpxファイルの<pagemap>要素による参照に従って<pagename>PageDef.xmlファイルをロードし、バインディング・コンテナを作成します。

  4. バインディング・コンテナのprepareModelフェーズで、すべての実行可能項目が準備およびリフレッシュされます。

  5. DataControls.dcxファイルに含まれるデータ・コントロール・ファクトリによって指定されるアプリケーション・モジュールの名前付きメソッドを参照することにより、イテレータ・バインディングが実行されます。

  6. バインディング・コンテナは、マップされたWebページの<pagename>PageDef.xmlファイルの<bindings>セクションに定義されたバインディングも作成します。

  7. #{bindings}という式を使用した式言語(EL)に基づくADFバインディングへのWebページ参照が、そのページのバインディング・コンテナにアクセスすることで解決されます。

  8. ページは、バインディング・コンテナのバインディングから使用可能なデータを取得します。

図A-2 ADF BCベースのWebアプリケーションにおけるOracle ADFファイル階層および構文図

ADFファイル階層および構文図のイメージ

A.4 bc4j.xcfg

bc4j.xcfgファイルには、アプリケーション・モジュール名に関する情報とユーザーが構成済のランタイム・パラメータが含まれています。SRDemoアプリケーションのbc4j.xcfgの例を、次に示します。

例A-1 bc4j.xcfg

<?xml version = '1.0' encoding = 'UTF-8'?>
<BC4JConfig>
   <AppModuleConfigBag>
      <AppModuleConfig name="SRServiceLocal">
         <DeployPlatform>LOCAL</DeployPlatform>
         <JDBCDataSource>java:comp/env/jdbc/SRDemoDS</JDBCDataSource>
         <jbo.project>DataModel</jbo.project>
         <jbo.locking.mode>optimistic</jbo.locking.mode>
         <AppModuleJndiName>oracle.srdemo.model.SRService</AppModuleJndiName>
         <jbo.security.enforce>Must</jbo.security.enforce>
         <java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
         <ApplicationName>oracle.srdemo.model.SRService</ApplicationName>
         <jbo.server.internal_connection>java:comp/env/jdbc/SRDemoCoreDS</jbo.server.internal_connection>
      </AppModuleConfig>
      <AppModuleConfig name="SRServiceLocalTesting">
         <DeployPlatform>LOCAL</DeployPlatform>
         <JDBCName>SRDemo</JDBCName>
         <jbo.project>DataModel</jbo.project>
         <AppModuleJndiName>oracle.srdemo.model.SRService</AppModuleJndiName>
         <jbo.locking.mode>optimistic</jbo.locking.mode>
         <jbo.security.enforce>Must</jbo.security.enforce>
         <java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
         <ApplicationName>oracle.srdemo.model.SRService</ApplicationName>
      </AppModuleConfig>
   </AppModuleConfigBag>
   <ConnectionDefinition name="SRDemo">
      <ENTRY name="JDBC_PORT" value="1521"/>
      <ENTRY name="ConnectionType" value="JDBC"/>
      <ENTRY name="HOSTNAME" value="bordello.us.oracle.com"/>
      <ENTRY name="DeployPassword" value="true"/>
      <ENTRY name="user" value="SRDemo"/>
      <ENTRY name="ConnectionName" value="SRDemo"/>
      <ENTRY name="SID" value="bordello"/>
      <ENTRY name="password">
         <![CDATA[{904}05EF4D2067E3477EBE0CF3865966EB7C5F]]>
      </ENTRY>
      <ENTRY name="JdbcDriver" value="oracle.jdbc.OracleDriver"/>
      <ENTRY name="ORACLE_JDBC_TYPE" value="thin"/>
      <ENTRY name="DeployPassword" value="true"/>
   </ConnectionDefinition>
</BC4JConfig>

A.5 DataBindings.cpx

DataBindings.cpxファイルは、使用可能なデータ・コントロールをHTMLビジュアル・エディタのWebページ上に最初にドロップしたときに、ユーザー・インタフェース・プロジェクトに作成されます。.cpxファイルは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義し、メタデータを提供します。このメタデータから、実行時にOracle ADFバインディング・オブジェクトが作成されます。データ・バインドされたUIコンポーネントを文書に挿入すると、バインディング式がページに追加され、それによって実行時にOracle ADFバインディング・オブジェクトにアクセスします。

旧リリースのJDeveloperでADFアプリケーションを作成したことのあるユーザーは、以前のように.cpxファイルにDataControls.dcxファイルからコピーされた情報がすべて含まれておらず、その参照のみが含まれていることに気付くはずです。このため、.cpxファイルに変更を加える場合は、DataControls.dcxファイルを編集する必要があります。

DataBindings.cpxファイルは、ユーザー・インタフェース・プロジェクト・フォルダの/srcディレクトリにあります。ファイル・ノードをダブルクリックすると、XMLソース・エディタにバインディング・コンテキスト記述が表示されます。(バインディング・コンテキスト・パラメータを編集するには、プロパティ・インスペクタを使用して、構造ウィンドウで適切なパラメータを選択します。)

A.5.1 DataBindings.cpxの構文

DataBindings.cpxファイルのトップレベル要素は、<DataControlConfigs>です。

<DataControlConfigs xmlns="http://xmlns.oracle.com/adfm/configuration"
                    version="10.1.3.35.65" Package="oracle.srdemo.model"
                    id="DataControls">

ここでのXMLネームスペース属性(xmlns)により、データ・コントロールの実行時のバインド先となるURIを指定します。パッケージ名のみ編集可能であり、他のすべての属性はここに示したとおりの値に設定する必要があります。

図A-3は、<DataControlConfigs>要素の子要素の階層を示しています。データ・コントロールを作成したビジネス・サービスごとに、独自の<dataControlUsages>定義が割り当てられます。

図A-3 DataBindings.cpxファイルの構造定義のスキーマ

DataBindings.cpxファイルの構造定義のスキーマ

子要素の使用方法は、次のとおりです。

  • <pageMap>要素: すべてのユーザー・インタフェースURLと、対応するpageDefinitionUsage名をマップします。このマップは、実行時にURLをそのpageDefinitionにマップするために使用されます。

  • <pageDefinitionUsages>要素: PageDefinitionUsage(BindingContainerインスタンス)名を対応するpageDefinition定義にマップします。id属性は、使用IDを示します。path属性は、ページ定義へのフルパスを示します。

  • <dataControlUsages>要素: データ・コントロール(短縮名)のリストと、それらに対応するdcxまたはxcfgファイル内のデータ・コントロール定義エントリへのパスを宣言します。

表A-1に、DataBindings.cpxの各要素の属性を示します。

表A-1 DataBindings.cpxファイルの各要素の属性

要素の構文 属性 属性の説明

<pageMap> <page /></pageMap>

path

ディレクトリへのフルパス。ユーザー・インタフェース・ページの場所を識別します。


usageId

一意の修飾子。ADFページ定義ファイルに出現するページ定義IDを指定します。ADFバインディング・サーブレットは、受信URLリクエストを検出し、バインディング変数が受信HTTPリクエストのURLに関連付けられたADFページ定義を指し示しているかどうかをチェックします。

<pageDefinitionUsages> <page/></pageDefinitionUsages>

id

一意の修飾子。ADFページ定義ファイルに出現するページ定義IDを参照します。


path

完全修飾パッケージ名。ユーザー・インタフェース・ページのADFページ定義ファイルの場所を識別します。

<dataControlUsages> <dc ... /></dataControlUsages>

id

一意の修飾子。DataControls.dcxファイルの定義に従ってデータ・コントロールの使用を識別します。


path

完全修飾パッケージ名。データ・コントロールの場所を識別します。


A.5.2 DataBindings.cpxの例

例A-2は、SRDemoアプリケーションのDataBindings.cpxファイルの構文を示しています。データ・コントロールは、id="<name>"によって指定します。指定したパッケージの./commonサブディレクトリ内でbc4j.xcfgファイルを特定するために、Package属性とConfiguration属性を組み合せて使用します。該当する構成には、アプリケーション・モジュール名とユーザーが構成済の全ランタイム・パラメータに関する情報が含まれています。

例A-2 DataBindings.cpxファイル

  <dataControlUsages>
    <dc id="SRDemoFAQ" path="oracle.srdemo.faq.SRDemoFAQ"/>
    <BC4JDataControl id="SRService" Package="oracle.srdemo.model"
                     FactoryClass="oracle.adf.model.bc4j.DataControlFactoryImpl"
                     SupportsTransactions="true" SupportsFindMode="true"
                     SupportsRangesize="true" SupportsResetState="true"
                     SupportsSortCollection="true"
                     Configuration="SRServiceLocal" syncMode="Immediate"
                     xmlns="http://xmlns.oracle.com/adfm/datacontrol"/>
  </dataControlUsages>

A.6 <pageName>PageDef.xml

<pageName>PageDef.xmlファイルは、データ・コントロール・パレットまたは構造ウィンドウを使用して、データ・バインドされたコンポーネントをWebページに挿入するたびに作成されます。これらのXMLファイルにより、アプリケーションの各WebページのOracle ADFバインディング・コンテナが定義されます。バインディング・コンテナは、ページ内のバインディングへのアクセスを提供します。そのため、データ・バインドされたWebページごとに1つのXMLファイルが割り当てられます。


注意:

<pageName>PageDef.xmlファイルの名前は、JDeveloperでは変更できませんが、JDeveloperを使用せずにMyWork/ViewController/src/viewフォルダで直接変更できます。<pageName>PageDef.xmlファイルの名前を変更する場合は、DataBindings.cpxファイルの<pageDefinitionUsages>要素におけるidおよびpath属性の参照も更新する必要があります。

PageDef.xmlファイルは、ViewControllerプロジェクト・フォルダの/src/viewディレクトリにあります。アプリケーション・ナビゲータでは、「アプリケーション・ソース」フォルダのビュー・パッケージ内にこのファイルが表示されます。ファイル・ノードをダブルクリックすると、XMLソース・エディタにページ記述が表示されます。ページ記述パラメータを編集するには、プロパティ・インスペクタを使用して、構造ウィンドウで適切なパラメータを選択します。

PageDefsの生成方法は、単一値を戻すメソッドとコレクションを戻すメソッドでは大きな違いがあるため、後述の説明ではこれらを別々にリストします。

A.6.1 PageDef.xmlの構文

PageDef.xmlファイルのトップレベル要素は、<pageDefinition>です。

<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
                version="10.1.3.35.83" id="<pagename>PageDef"
                Package="oracle.srdemo.view.pageDefs">

ここでのXMLネームスペース属性(xmlns)により、ADFバインディング・コンテナの実行時のバインド先となるURIを指定します。パッケージ名のみ編集可能であり、他のすべての属性はここに示したとおりの値に設定する必要があります。

例A-3は、<pageDefinition>要素の子要素の階層を示しています。データ・コントロールを作成したビジネス・サービスごとに、独自の<AdapterDataControl>定義が割り当てられます。

例A-3 PageDef.xml要素の階層

<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition>
    <parameters>
        ...
    </parameters>
    <executables>
        ...
    </executables>
    <bindings>
        ...
    </bindings>
</pageDefinition>

子要素の使用方法は、次のとおりです。

  • <parameters>: ELでアクセス可能なページ・レベルのパラメータを定義します。これらのパラメータは、Webページ・リクエストに固有の情報を格納しており、バインディング式を通じてアクセスできます。

  • <executables>: ADFページ・ライフサイクルのprepareModelフェーズ中に実行される項目(メソッド、ビュー・オブジェクトおよびアクセッサ)のリストを定義します。実行されるメソッドは、<methodIterator>により定義されます。ライフサイクルでは、<executables>セクションにリストされた順序で実行処理が行われます。メソッドまたは操作が実行されるかどうかは、そのrefreshまたはrefreshCondition属性の値に依存します。データ・コントロールの組込み操作は、次の要素で定義されます。

    <page>: ネストされたページの定義(バインディング・コンテナ)

    <iterator>: DataControlsの名前付きコレクションの定義

    <accessorIterator>: データ・コントロール階層のアクセッサを取得するための定義

    <methodIterator>: 同じファイルのmethodActionにより定義された起動メソッドから戻されるイテレータを取得するための定義

    <variableIterator>: バインディング・コンテナに対して宣言された変数を格納する内部イテレータ

    <invokeAction>: 実行可能項目として起動されるメソッドの定義

  • <bindings>: <executables>内のエントリを参照して、バインディングが属性レベルのデータを抽出または送信するコレクションを取得します。

表A-2に、<pageDefinition>トップレベル要素の属性を示します。

表A-2 PageDef.xmlファイルの<pageDefinition>要素の属性

要素の構文 属性 属性の説明

<pageDefinition>

ControllerClass

コントローラがこのbindingContainerのPageControllerオブジェクトをリクエストしたときに作成されるクラスの完全修飾名。


EnableTokenValidation

ポストバックが発生したときに、このbindingContainerで現在位置検証を有効化します。これにより、Web層の状態が特定ページのレンダリング状態と一致することが保証されます。


FindMode

旧リリース(10.1.2)でのみ使用します。初期準備の際に、このbindingContainerをfindModeで開始するかどうかを示します。


MsgBundleClass

完全修飾パッケージ名。任意のバインディングの翻訳文字列を含むクラスを識別します。


Viewable

このバインディングおよび関連コンポーネントをレンダリングするかどうかを決定するため、実行時に解決されるEL式。


表A-3に、<parameters>の子要素の属性を示します。

表A-3 PageDef.xmlファイルの<parameters>要素の属性

要素の構文 属性 属性の説明

<parameter>

id

一意の識別子。ADFバインディングにより参照できます。


option

バインディング・コンテナ内での変数の使用方法を次のように示します。

  • Final: バインディング・コンテナの使用ではこのパラメータを渡すことができません。定義のデフォルト値を使用する必要があります。

  • Optional: 変数の値を提供する必要はありません。

  • Mandatory: 変数の値を提供する必要があります。提供しない場合、バインディング・コンテナ例外がスローされます。


readonly

パラメータ値が変更可能であるかどうかを示します。パラメータ値の変更をアプリケーションに許可しない場合は、trueに設定します。


value

デフォルト値。EL式を使用できます。


表A-4に、PageDef.xmlの<executables>要素の属性を示します。

表A-4 PageDef.xmlファイルの<executables>要素の属性

要素の構文 属性 属性の説明

<accessorIterator>

BeanClass

関連付けられたイテレータ(コレクション)のBeanのJava型を識別します。


CacheResults

trueの場合、リクエスト間でデータ・コレクションが管理されます。


DataControl

このイテレータ・バインディングにより参照されるコレクションを解析するか、または戻すデータ・コントロール。


id

一意の識別子。任意のADF値バインディングにより参照できます。


MasterBinding

マスターとして機能するデータ・コレクションをアクセッサ・イテレータのディテール・コレクションにバインドするmethodIterator(イテレータ)への参照。


ObjectType

ADF Business Componentsでのみ使用します。ブール値により、コレクションがオブジェクト型であるかどうかを指定します。


RangeSize

バインドされたコレクションからフェッチするデータ・オブジェクト数のレンジを指定します。レンジは、コレクション内のデータ・オブジェクトのサブセットへのアクセスに使用するウィンドウを定義します。デフォルトのレンジ・サイズは、10個のデータ・オブジェクトをフェッチするレンジです。セット全体を操作する場合や、ページに表示するデータ・オブジェクト数を制限する場合、RangeSizeを使用します。値-1および0には特別な意味があります。値-1では、コレクションから使用可能なすべてのオブジェクトが戻されますが、値0では、コレクションがデータソースから取得する場合と同じ数のオブジェクトが戻されます。


Refresh

どのようなときに実行可能項目を起動するかを指定します。必要に応じて次のいずれかのプロパティを設定します。

  • always: バインディング・コンテナが準備されるたびに、実行可能項目が起動されます。ページが表示された場合、ユーザーが変更を送信した場合、またはアプリケーションでページへのポストバックが発生した場合に起動されます。

  • deferred: 別のバインディングがこの実行可能項目を必要とするか参照する場合にリフレッシュが発生します。実行可能項目のリフレッシュはパフォーマンスに影響する可能性があるため、レンダリングされるバインディングで使用される場合にのみリフレッシュが発生するよう設定できます。

  • ifNeeded(デフォルト): その時点までリフレッシュが発生していないためにフレームワークが必要とする場合、実行可能項目のリフレッシュが発生します。たとえば、ページ定義の最初にディテールがリストされるようなアクセッサ階層が存在すると、マスターが2回リフレッシュされる可能性があります(ディテールに対して1回とマスターのイテレータに対して1回)。ifNeededを使用すると、リフレッシュの重複を回避できます。これは、実行可能項目のデフォルト動作です。

  • never: コントローラ・フェーズのいずれかにおいて、アプリケーション自体で実行可能項目のリフレッシュをコールします。フレームワークによるリフレッシュは実行されません。

  • prepareModel: ページのバインディング・コンテナが準備されるたびに、実行可能項目が起動されます。

  • prepareModelIfNeeded: その時点まで実行可能項目のリフレッシュが発生していない場合、prepareModelフェーズ中に実行可能項目が起動されます。前述のifNeededプロパティも参照してください。

  • renderModel: ページがレンダリングされるたびに、実行可能項目が起動されます。

  • renderModelIfNeeded: 必要に応じて、ページのrenderModelフェーズ中に実行可能項目が起動されます。前述のifNeededプロパティも参照してください。


RefreshCondition

解決されたときに実行可能項目の起動条件を決定するEL式。たとえば、${!bindings.findAllServiceRequestIter.findMode}は、ADFバインディング・コンテキストのAllServiceRequestのイテレータに関するfindModeの値を解決します。ヒント: プロパティ・インスペクタを使用して、バインディング・コンテキスト(バインディング・ネームスペースまたはデータ・ネームスペース)、JSFマネージドBeanおよびJSPオブジェクトの使用可能オブジェクトから式を作成できます。

<invokeAction>

Binds

起動するアクションを指定します。任意のactionBindingで使用できます。また、EJBセッション・ファサード・データ・コントロールの場合、データ・コントロールにより公開されるfinderメソッドにバインドできます。EJBセッション・ファサード・データ・コントロールでサポートされる組込みのアクションは、次のとおりです。

  • Execute: データ・コレクションにより定義されたバインド・アクションを実行します。

  • Find: コレクションからデータ・オブジェクトを取得します。

  • First: データ・コレクション・レンジ内の最初のデータ・オブジェクトに移動します。

  • Last: データ・コレクション・レンジ内の最後のデータ・オブジェクトに移動します。

  • Next: データ・コレクション・レンジ内の次のデータ・オブジェクトに移動します。現在のレンジ位置がすでに最後のデータ・オブジェクト上にある場合には、アクションは実行されません。

  • Previous: データ・コレクション・レンジ内の前のデータ・オブジェクトに移動します。現在の位置がすでに最初のデータ・オブジェクト上にある場合には、アクションは実行されません。

  • setCurrentRowWithKey: 入力フィールドで指定された値から変換したStringとして行キーを渡します。行キーは、バインドされたデータ・コレクション内のデータ・オブジェクトの現状設定に使用されます。キーを渡す際に、フォームのURLには行キー値は表示されません。この操作は、データ・コレクションがマルチパートの属性キーを定義する場合に使用できます。

  • setCurrentRowWithKeyValue: setCurrentRowWithKeyと同様ですが、文字列化されたキーのかわりに主キー値を使用する場合に指定します。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


Refresh

前述のRefresh属性を参照してください。


RefreshCondition

前述のRefreshCondition属性を参照してください。

<iterator>および<methodIterator>

BeanClass

関連付けられたイテレータ(コレクション)のBeanのJava型を識別します。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


Binds

前述のBinds属性を参照してください。


CacheResults

前述のCacheResults属性を参照してください。


DataControl

このイテレータが関連付けられているbindingContext(.cpx)のDataControl使用の名前。


DefClass

テスト用の内部使用属性。


id

一意の識別子。任意のADF値バインディングにより参照できます。


ObjectType

EJBセッション・ファサード・データ・コントロールでは使用されません(ADF Business Componentsでのみ使用されます)。


RangeSize

前述のRangeSize属性を参照してください。


Refresh

前述のRefresh属性を参照してください。


RefreshCondition

前述のRefreshCondition属性を参照してください。

<page>および<variableIterator>

id

一意の識別子。<page>の場合、このページに含まれるネストされたページ(リージョン)を示します。<variableIterator>実行可能項目の場合、任意のADF値バインディングによりこの識別子を参照できます。


path

<page>実行可能項目にのみ使用されます。高度な使用例として、別のページのバインディング・コンテナを参照する完全修飾パスを指定できます。


Refresh

前述のRefresh属性を参照してください。


RefreshCondition

前述のRefreshCondition属性を参照してください。


表A-5に、PageDef.xmlの<bindings>要素の属性を示します。

表A-5 PageDef.xmlファイルの<bindings>要素の属性

要素の構文 属性 属性の説明

<action>

Action

完全修飾パッケージ名。データ・コントロールの作成されるクラスを識別します。EJBセッション・ファサードの場合は、セッションBeanです。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


DataControl

このiteratorBindingまたはactionBindingが関連付けられているbindingContext(.cpx)のDataControl使用の名前。

<attributeValues>

ApplyValidation

デフォルトでtrueに設定されます。trueの場合、controlBindingにより、バインディングに定義されたバリデータが実行されます。ADF Business Componentsにおいて、ローカル・モードが使用され、対応する属性に同じバリデータがすでに定義されている場合は、falseに設定できます。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


ControlClass

テスト用の内部使用属性。


CustomInputHandler

特定の値バインディングのinputValueを処理する際に使用されるoracle.jbo.uicli.binding.JUCtrlValueHandler実装のクラス名です。


DefClass

テスト用の内部使用属性。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


IterBinding

このバインディングが関連付けられているbindingContainerのiteratorBindingインスタンスを参照します。


NullValueId

リスト表示にNULL値を示すためのStringを含むbindingContainerのメッセージ・バンドルのエントリを参照します。

<button>

ApplyValidation

デフォルトでtrueに設定されます。trueの場合、controlBindingにより、バインディングに定義されたバリデータが実行されます。ADF Business Componentsにおいて、ローカル・モードが使用され、対応する属性に同じバリデータがすでに定義されている場合は、falseに設定できます。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


BoolVal

このブール・リスト・バインディングの静的値のリストにおいて、0(ゼロ)索引の値がtrueとfalseのいずれを示すかを指定します。


ControlClass

テスト用の内部使用属性。


CustomInputHandler

特定の値バインディングのinputValueを処理する際に使用されるoracle.jbo.uicli.binding.JUCtrlValueHandler実装のクラス名です。


DefClass

テスト用の内部使用属性。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


IterBinding

このバインディングが関連付けられているbindingContainerのiteratorBindingインスタンスを参照します。


ListIter

このlistBindingのソース・リストに関連付けられているiteratorBindingを参照します。


ListOperMode

このリスト・バインディングをナビゲーション用とするか、値の静的リストとするか、またはLOV型のリストとするかを指定します。


NullValueFlag

このリスト・バインディングにNULL値を含めるかどうかを指定します。含める場合は、リストの最初または最後のどちらに表示するかを指定します。


NullValueId

リスト表示にNULL値を示すためのStringを含むbindingContainerのメッセージ・バンドルのエントリを参照します。

<graph>

ApplyValidation

デフォルトでtrueに設定されます。trueの場合、controlBindingにより、バインディングに定義されたバリデータが実行されます。ADF Business Componentsにおいて、ローカル・モードが使用され、対応する属性に同じバリデータがすでに定義されている場合は、falseに設定できます。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


BoolVal

このブール・リスト・バインディングの静的値のリストにおいて、0(ゼロ)索引の値がtrueとfalseのいずれを示すかを指定します。


ChildAccessorName

ツリーの特定の階層ノード・タイプに関して、ノードの次のレベルを取得するために起動されるアクセッサの名前。


ControlClass

テスト用の内部使用属性。


CustomInputHandler

特定の値バインディングのinputValueを処理する際に使用されるoracle.jbo.uicli.binding.JUCtrlValueHandler実装のクラス名です。


DefClass

テスト用の内部使用属性。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


IterBinding

このバインディングが関連付けられているbindingContainerのiteratorBindingインスタンスを参照します。


NullValueId

リスト表示にNULL値を示すためのStringを含むbindingContainerのメッセージ・バンドルのエントリを参照します。

<list>

ApplyValidation

デフォルトでtrueに設定されます。trueの場合、controlBindingにより、バインディングに定義されたバリデータが実行されます。ADF Business Componentsにおいて、ローカル・モードが使用され、対応する属性に同じバリデータがすでに定義されている場合は、falseに設定できます。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


ControlClass

テスト用の内部使用属性。


CustomInputHandler

特定の値バインディングのinputValueを処理する際に使用されるoracle.jbo.uicli.binding.JUCtrlValueHandler実装のクラス名です。


DefClass

テスト用の内部使用属性。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


IterBinding

このバインディングが関連付けられているbindingContainerのiteratorBindingインスタンスを参照します。


ListIter

このlistBindingのソース・リストに関連付けられているiteratorBindingを参照します。


ListOperMode

このリスト・バインディングをナビゲーション用とするか、値の静的リストとするか、またはLOV型のリストとするかを指定します。


NullValueFlag

このリスト・バインディングにNULL値を含めるかどうかを指定します。含める場合は、リストの最初または最後のどちらに表示するかを指定します。


NullValueId

リスト表示にNULL値を示すためのStringを含むbindingContainerのメッセージ・バンドルのエントリを参照します。


StaticList

バインドされたリスト・コンポーネントにレンダリングされる値の静的リストを定義します。

<methodAction>

Action

完全修飾パッケージ名。データ・コントロールの作成されるクラスを識別します。EJBセッション・ファサードの場合は、セッションBeanです。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


ClassName

起動されるメソッドが属しているクラスです。


CustomInputHandler

特定の値バインディングのinputValueを処理する際に使用されるoracle.jbo.uicli.binding.JUCtrlValueHandler実装のクラス名です。


DataControl

このiteratorBindingまたはactionBindingが関連付けられているbindingContext(.cpx)のDataControl使用の名前。


DefClass

テスト用の内部使用属性。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


InstanceName

関連付けられたメソッドが起動されるJavaオブジェクト・インスタンスへのドット区切りのELパス。


IsLocalObjectReference

instanceNameにこのbindingContainerを相対位置とするELパスが含まれる場合は、trueに設定します。


IsViewObjectMethod

instanceNameに関連データ・コントロールのアプリケーション・モジュールを相対位置とするインスタンス・パスが含まれる場合は、trueに設定します。


IterBinding

このバインディングが関連付けられているbindingContainerのiteratorBindingインスタンスを参照します。


MethodName

このmethodActionBindingで起動する必要のある特定のインスタンスまたはクラスの操作の名前を示します。


RequiresUpdateModel

このアクションの起動前に、アクションでモデルの更新を必要とするかどうかを指定します。


ReturnName

関連付けられたメソッドにより戻される結果のELパス。

<table>および<tree>

ApplyValidation

デフォルトでtrueに設定されます。trueの場合、controlBindingにより、バインディングに定義されたバリデータが実行されます。ADF Business Componentsにおいて、ローカル・モードが使用され、対応する属性に同じバリデータがすでに定義されている場合は、falseに設定できます。


BindingClass

この属性は、下位互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperリリース10.1.3では無視されます。


ControlClass

テスト用の内部使用属性。


CustomInputHandler

特定の値バインディングのinputValueを処理する際に使用されるoracle.jbo.uicli.binding.JUCtrlValueHandler実装のクラス名です。


DefClass

テスト用の内部使用属性。


DiscrValue

階層タイプのバインディング(ツリー・ノードのタイプ定義)における多相化識別子の値を示します。この値により、多相ツリー・バインディングにレンダリングされるコレクションの特定行を、包含階層タイプのバインディングを使用してレンダリングするかどうかを指定します。


id

一意の識別子。任意のADFアクション・バインディングにより参照できます。


IterBinding

このバインディングが関連付けられているbindingContainerのiteratorBindingインスタンスを参照します。


NullValueId

リスト表示にNULL値を示すためのStringを含むbindingContainerのメッセージ・バンドルのエントリを参照します。


A.6.2 PageDef.xmlの例(ビュー・オブジェクトの属性の場合)

これは、データ・コントロール・パレットのSRServiceノードからオープン状態のJSPページにLoggedInUserビュー・オブジェクトの属性をドロップすると作成されるページ定義ファイルです。

例A-4 LoggedInUserビュー・オブジェクトの属性のPageDef

<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
                version="10.1.3.35.65" id="app_SRCreateConfirmPageDef"
                Package="oracle.srdemo.view.pageDefs">
  <parameters/>
  <executables>
    <iterator id="GlobalsIterator" RangeSize="10" Binds="Globals"
              DataControl="SRService"/>
    <iterator id="LoggedInUserIterator" RangeSize="10" Binds="LoggedInUser"
              DataControl="SRService"/>
  </executables>
  <bindings>
    <attributeValues IterBinding="GlobalsIterator" id="ProblemDescription">
      <AttrNames>
        <Item Value="ProblemDescription"/>
      </AttrNames>
    </attributeValues>
    <attributeValues IterBinding="GlobalsIterator" id="ProductId">
      <AttrNames>
        <Item Value="ProductId"/>
      </AttrNames>
    </attributeValues>
    <attributeValues IterBinding="GlobalsIterator" id="ProductName">
      <AttrNames>
        <Item Value="ProductName"/>
      </AttrNames>
    </attributeValues>
    <attributeValues id="FirstName"
                     IterBinding="LoggedInUserIterator">
      <AttrNames>
        <Item Value="FirstName"/>
      </AttrNames>
    </attributeValues>
    <attributeValues id="LastName"
                     IterBinding="LoggedInUserIterator">
      <AttrNames>
        <Item Value="LastName"/>
      </AttrNames>
    </attributeValues>
    ...
  </bindings>
</pageDefinition>

A.6.3 PageDef.xmlの例(ビュー・オブジェクト全体の場合)

これは、データ・コントロール・パレットのSRServiceノードからオープン状態のJSPページにServiceRequestsByStatusノードをドロップすると作成されるページ定義ファイルです。これにより、ビュー・オブジェクト全体が生成されます。

例A-5 ビュー・オブジェクト全体のPageDef

<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
                version="10.1.3.35.65" id="app_SRListPageDef"
                Package="oracle.srdemo.view.pageDefs"
                EnableTokenValidation="false">
  <parameters/>
  <executables>
    <iterator id="ServiceRequestsByStatusIterator" RangeSize="10"
              Binds="ServiceRequestsByStatus" DataControl="SRService"/>
  </executables>
  <bindings>
    <table id="LoggedInUserServiceRequests"
           IterBinding="ServiceRequestsByStatusIterator">
      <AttrNames>
        <Item Value="SvrId"/>
        <Item Value="Status"/>
        <Item Value="RequestDate"/>
        <Item Value="ProblemDescription"/>
        <Item Value="ProdId"/>
        <Item Value="CreatedBy"/>
        <Item Value="AssignedTo"/>
        <Item Value="AssignedDate"/>
      </AttrNames>
    </table>
    <action id="setCurrentRowWithKey"
            IterBinding="ServiceRequestsByStatusIterator"
            InstanceName="SRService.ServiceRequestsByStatus"
            DataControl="SRService" RequiresUpdateModel="false" Action="96">
      <NamedData NDName="rowKey" NDValue="${row.rowKeyStr}"
                 NDType="java.lang.String"/>
    </action>
    <action id="ExecuteWithParams" IterBinding="ServiceRequestsByStatusIterator"
            InstanceName="SRService.ServiceRequestsByStatus"
            DataControl="SRService" RequiresUpdateModel="true"
            Action="95">
      <NamedData NDName="StatusCode" NDValue="${userState.listMode}"
                 NDType="java.lang.String"/>
    </action>
  </bindings>
</pageDefinition>

A.7 web.xml

この項では、標準のweb.xmlデプロイメント・ディスクリプタ・ファイルに固有のOracle ADF構成設定について説明します。

JDeveloperでJSFテクノロジを使用するプロジェクトを作成すると、デフォルト設定を含む初期のweb.xmlファイルが/WEB-INFに自動的に作成されます。ファイルを編集するには、アプリケーション・ナビゲータでweb.xmlをダブルクリックし、XMLエディタに表示します。

次の設定は、JSFおよびADF Facesを使用するすべてのアプリケーションのweb.xmlで構成する必要があります。

JSFのサーブレットとマッピングの構成設定は、JSFプロジェクトを最初に作成したときに、自動的に初期のweb.xmlファイルに追加されます。ADF Facesのフィルタとマッピング、およびリソース・サーブレットとマッピングの構成設定は、JSFページに最初にADF Facesコンポーネントを挿入したときに自動的に挿入されます。

例A-6 ADF FacesおよびJSF用のweb.xmlの構成

<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
  <description>Empty web.xml file for Web Application</description>

  <!-- Installs the ADF Faces Filter -- >
  <filter>
    <filter-name>adfFaces</filter-name>
    <filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
  </filter>

  <!-- Adds the mapping to ADF Faces Filter -- >
  <filter-mapping>
    <filter-name>adfFaces</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
  </filter-mapping>

  <!-- Maps the JSF servlet to a symbolic name -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Maps ADF Faces ResourceServlet to a symbolic name -- >
  <servlet>
    <servlet-name>resources</servlet-name>
    <servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-class>
  </servlet>

  <!-- Maps URL pattern to the JSF servlet's symbolic name -->
  <!-- You can use either a path prefix or extension suffix pattern -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

  <!-- Maps URL pattern to the ResourceServlet's symbolic name -->
  <servlet-mapping>
    <servlet-name>resources</servlet-name>
    <url-pattern>/adf/*</url-pattern>
  </servlet-mapping>
...
</web-app>

JSFおよびADF Facesの使用時にweb.xml内で使用できるコンテキスト・パラメータの詳細は、A.7.1.1項「状態保存の構成」からA.7.1.7項「留意事項」を参照してください。

A.7.1 web.xmlファイルでサポートされるタスク

web.xmlファイルでは、次のJSFおよびADF Facesタスクがサポートされます。

A.7.1.1 状態保存の構成

次の状態保存コンテキスト・パラメータを指定できます。

  • javax.faces.STATE_SAVING_METHOD: アプリケーションの表示状態を格納する場所を指定します。デフォルト値はserverです(アプリケーションの表示状態はサーバーに格納されます)。表示状態をブラウザ・クライアントに格納する場合、この値をclientに設定します。この場合、JDeveloperでは、トークン・ベースのクライアント側の状態保存が自動的に使用されます(次のoracle.adf.view.faces.CLIENT_STATE_METHODを参照)。デフォルト数の15のかわりに、使用するトークンの数を指定できます(後続のoracle.adf.view.faces.CLIENT_STATE_MAX_TOKENSを参照)。

  • oracle.adf.view.faces.CLIENT_STATE_METHOD: クライアント側の状態保存が有効である場合に、使用するクライアント側の状態保存のタイプを指定します。値は次のとおりです。

    • token: (デフォルト)ページ状態はセッションに格納されますが、クライアントにトークンが維持されます。HttpSessionに戻されて格納される状態のブロックを識別する単純なトークンが、クライアントに格納されます。これにより、ADF Facesでは、同じページの複数回にわたる表示を正確に処理できます。この場合、フェイルオーバーHttpSessionがサポートされます。これは、JSF 1.2で規定されているデフォルトのサーバー側の動作と一致します。

    • all: 一般的にサイズの大きい非表示のフォーム・フィールドにクライアントのすべての状態を格納します。これは、JSF 1.1のクライアント側の状態保存動作と一致しますが、HttpSessionを使用しない開発者にとっては有益です。

  • oracle.adf.view.faces.CLIENT_STATE_MAX_TOKENS: ユーザーごとに常時格納するトークンの数を指定します。デフォルトは15です。この値を超えると、表示頻度の最も低いページの状態が失われるため、「戻る」ボタンを頻繁に使用するユーザーや、同時に複数のウィンドウを開いているユーザーが影響を受けます。フレームへの依存度が高いHTMLアプリケーションを作成する場合は、この値を増やすことができます。

例A-7は、状態保存パラメータを含むweb.xmlファイルの一部を示しています。

例A-7 web.xmlの状態保存のコンテキスト・パラメータ

<context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>client</param-value>
</context-param>

<context-param>
  <param-name>oracle.adf.view.faces.CLIENT_STATE_MAX_TOKENS</param-name>
  <param-value>20</param-value>
</context-param>

A.7.1.2 アプリケーション・ビュー・キャッシュの構成

次のアプリケーション・ビュー・キャッシュ・コンテキスト・パラメータを指定できます。

  • oracle.adf.view.faces.USE_APPLICATION_VIEW_CACHE: アプリケーション・ビュー・キャッシュ機能を有効化するかどうかを指定します。アプリケーション・ビュー・キャッシュが有効化されると、ユーザーによって最初にページが表示されたときに、ADF Facesにより初期のページ状態がアプリケーション・レベルでキャッシュされます。その後、すべてのユーザーがページのキャッシュされた状態を入れ替わり再利用できるため、アプリケーションのパフォーマンスは著しく向上します。デフォルトはfalseです。

例A-8は、アプリケーション・ビュー・キャッシュ・パラメータを含むweb.xmlファイルの一部を示しています。

例A-8 web.xmlのアプリケーション・ビュー・キャッシュのコンテキスト・パラメータ

<context-param>
  <param-name>oracle.adf.view.faces.USE_APPLICATION_VIEW_CACHE</param-name>
  <param-value>true</param-value>
</context-param>

A.7.1.3 デバッグの構成

次のデバッグ・コンテキスト・パラメータを指定できます。

  • oracle.adf.view.faces.DEBUG_JAVASCRIPT: ADF Facesのデフォルトでは、クライアントに提供されるJavaScriptは、一連のコメントや空白と同様に曖昧化されます。これにより、ADF FacesのJavaScriptダウンロードのサイズは大幅に削減されますが、JavaScriptのデバッグは難しくなります。アプリケーションの開発時に曖昧化を無効にするには、trueに設定します。アプリケーションのデプロイ時には、falseに設定します。

  • oracle.adf.view.faces.CHECK_FILE_MODIFICATION: このパラメータのデフォルトは、falseです。trueに設定すると、JSPの変更日付が自動的にチェックされ、JSPの変更時に保存済の状態が破棄されます。trueの場合、開発が簡単になりますが、アプリケーションのデプロイ時には不要となるオーバーヘッドが追加されます。アプリケーションのデプロイ時には、falseに設定します。

    JDeveloperの埋込みOC4Jにおけるテストおよびデバッグの場合、ADF Facesは埋込みOC4Jを自動的に検出し、ファイル変更チェックが有効に設定された状態で稼働するため、このパラメータをtrueに明示的に設定する必要はありません。

例A-9は、デバッグ・パラメータを含むweb.xmlファイルの一部を示しています。

例A-9 web.xmlのデバッグのコンテキスト・パラメータ

<context-param>
  <param-name>oracle.adf.view.faces.DEBUG_JAVASCRIPT</param-name>
  <param-value>true</param-value>
</context-param>

<context-param>
  <param-name>oracle.adf.view.faces.CHECK_FILE_MODIFICATION</param-name>
  <param-value>true</param-value>
</context-param>

A.7.1.4 ファイル・アップロードの構成

次のファイル・アップロード・コンテキスト・パラメータを指定できます。

  • oracle.adf.view.faces.UPLOAD_TEMP_DIR: ファイル・アップロード中に一時ファイルを格納するディレクトリを指定します。デフォルトは、ユーザーの一時ディレクトリです。

  • oracle.adf.view.faces.UPLOAD_MAX_DISK_SPACE: 1回のリクエストでアップロード・ファイルを格納するために使用できる最大ディスク領域を指定します。デフォルトは2000KBです。

  • oracle.adf.view.faces.UPLOAD_MAX_MEMORY: 1回のリクエストでアップロード・ファイルを格納するために使用できる最大メモリー容量を指定します。デフォルトは100KBです。

例A-10は、ファイル・アップロード・パラメータを含むweb.xmlファイルの一部を示しています。

例A-10 web.xmlのファイル・アップロードのコンテキスト・パラメータ

<context-param>
  <param-name>oracle.adf.view.faces.UPLOAD_TEMP_DIR</param-name>
  <param-value>/tmp/Adfuploads</param-value>
</context-param>

<context-param>
  <param-name>oracle.adf.view.faces.UPLOAD_MAX_DISK_SPACE</param-name>
  <param-value>5120000</param-value>
</context-param>

<context-param>
  <param-name>oracle.adf.view.faces.UPLOAD_MAX_MEMORY</param-name>
  <param-value>512000</param-value>
</context-param>

注意:

ファイル・アップロードの初期化パラメータは、デフォルトのUploadedFileProcessorによってのみ処理されます。デフォルトのプロセッサをカスタムのUploadedFileProcessor実装で置き換えた場合、これらのパラメータは処理されません。

ファイル・アップロードの詳細は、19.6項「ファイル・アップロード機能の提供」を参照してください。

A.7.1.5 ADF Modelバインディングの構成

ADFデータ・コントロールを使用してWebページを作成する場合、web.xmlで次の設定を構成する必要があります。

  • ADFバインディング・フィルタ: ADFContextを作成するためのサーブレット・フィルタ。このフィルタには、セキュリティ・コンテキストや、リクエストおよびレスポンス・オブジェクトを格納する環境クラスなど、ADFに関するコンテキスト情報が含まれます。ADFアプリケーションでは、このフィルタを使用して、状況によりバインディング・コンテキストへのアクセスが必要となるHTTPリクエストを事前に処理します。

  • アプリケーション・バインディング・コンテナ用のサーブレット・コンテキスト・パラメータ: アプリケーション・バインディング・コンテキストを定義するために実行時にフィルタで読み取るCPXファイルを指定します。CPXファイルの詳細は、12.3項「DataBindings.cpxファイルでの作業」を参照してください。

JDeveloperのデータ・コントロール・パレットを使用してデータ・バインドされたJSFページを最初に作成したときに、ADFデータ・バインディング構成設定が自動的にweb.xmlファイルに追加されます。

例A-11は、ADF Modelのバインディング設定を含むweb.xmlファイルの一部を示しています。データ・コントロール・パレットとバインディング・オブジェクトの詳細は、第12章「ページでのデータの表示」を参照してください。

例A-11 web.xmlのADF Modelのバインディング構成設定

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

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

<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>

A.7.1.6 JSF用のその他のコンテキスト構成パラメータ

アプリケーション全体に適用されるJSF用のその他のオプション・パラメータは、次のとおりです。

  • javax.faces.CONFIG_FILES: JSFアプリケーション構成リソース・ファイルへのパスを指定します。値には、アプリケーション・コンテキスト相対パスのカンマ区切りリストを使用します(例A-12を参照)。アプリケーションでJSF構成ファイルを複数使用する場合は、このパラメータを設定する必要があります(A.9.1項「faces-config.xmlでサポートされるタスク」を参照)。

  • javax.faces.DEFAULT_SUFFIX: JSFコンポーネントを含むJSPページのファイル拡張子(接尾辞)を指定します。デフォルト値は.jspです。

  • javax.faces.LIFECYCLE_ID: javax.faces.lifecycle.LifecycleFactory.DEFAULT_LIFECYCLE定数によるデフォルト設定以外のライフサイクル識別子を指定します。

例A-12 web.xmlでの複数のJSF構成ファイルの設定

<context-param>
  <param-name>javax.faces.CONFIG_FILES</param-name>
  <param-value>/WEB-INF/faces-config1.xml,/WEB-INF/faces-config2.xml</param-value>
</context-param>

A.7.1.7 留意事項

アプリケーションに複数のフィルタがある場合、実行する順番でweb.xmlに記載されている必要があります。実行時には、ファイル内に記載された順番でフィルタがコールされます。

A.8 j2ee-logging.xml

ADF Facesでは、デバッグ・セッションの実行時にロギング機能を提供するために、JavaロギングAPI(java.util.logging.Logger)を使用します。Javaロギングは、Javaプラットフォーム(JDK 1.4以上)で使用可能な標準的なAPIです。主要な要素は、http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.htmlの『Java Logging Overview』を参照してください。

通常、j2ee-logging.xmlでは、次の設定を構成できます。

A.8.1 j2ee-logging.xmlでサポートされるタスク

j2ee-logging.xmlファイルでは、次のJSFタスクがサポートされます。

A.8.1.1 Oracle ADFパッケージのロギング・レベルの変更

個々のOracle ADFパッケージのロギング・レベルを変更する場合、j2ee-logging.xml<loggers>要素の<logger>を編集します(例A-13を参照)。デフォルトのロギング・レベルは、INFOです。詳細なログ・メッセージを記録する場合は、level="FINE"に設定することをお薦めします。パッケージ名の指定では、下位の階層も含まれることに注意してください。つまり、oracle.adfのレベルを変更すると、その指定レベルはoracle.adfというパスで始まるすべてのクラスに適用されます。特定クラスのレベルを変更するには、フルパスを指定します。たとえば、パッケージ名oracle.adf.controllerに対するレベル設定は、oracle.adfパッケージの他のブランチには適用されません。

ADFアプリケーションをデバッグする際のロギング設定の詳細は、24.4.2項「Oracle ADFデバッグ構成の作成」を参照してください。

例A-13 j2ee-logging.xmlでのロギング・レベルの変更

<loggers>
   <logger name="oracle.adf" level="FINE" />
   ...
</loggers>

A.8.1.2 ログ出力のリダイレクト

デフォルトのログ出力(name="oracle")は、ファイル出力とコンソール出力(JDeveloperのログ・ウィンドウ)の2つのハンドラに関連付けられています。デフォルトでは、ログ・メッセージは同時に2つの場所に出力されます。ログ・メッセージの出力をリダイレクトする場合、j2ee-logging.xml<logger>要素の<handler>を編集します(例A-14を参照)。たとえば、JDeveloperのログ・ウィンドウにのみ出力を表示するには、<handler name="oc4j-handler"/>をコメント・アウトします。

例A-14 j2ee-logging.xmlでのログ出力ハンドラの変更

<loggers>
  <logger name="oracle" level="NOTIFICATION:1" useParentHandlers="false">
     <handler name="oc4j-handler"/>
     <handler name="console-handler"/>
  </logger>
  ...
</loggers>

A.8.1.3 ログ・ファイルの場所の変更

ログ・ファイルの格納場所を変更する場合、j2ee-logging.xml<log_handlers>要素の<log_handler>を編集します(例A-15を参照)。ログ・ファイルのデフォルト・ディレクトリは、../log/oc4jです。

例A-15 j2ee-logging.xmlでのログ・ファイルの場所の変更

<log_handler name="oc4j-handler"
     class="oracle.core.ojdl.loggin.ODLHandlerFactory">
  <property name="path" value="C:/temp/adf-log"/>
  <property name-"maxFileSize" value="10485760"/>

A.9 faces-config.xml

バリデータ、コンバータ、マネージドBean、アプリケーション・ナビゲーション・ルールなどのJSFアプリケーション・リソースは、アプリケーション構成ファイルに登録します。通常は、faces-config.xmlという1つの構成ファイルを使用します。


注意:

JSFアプリケーションでは、複数のJSF構成ファイルを使用できます。たとえば、アプリケーションの個々の領域にそれぞれ専用のJSF構成ファイルを必要とする場合や、カスタムのコンポーネントまたはレンダラを含むライブラリをパッケージする場合、それらの領域やライブラリごとに個別のJSF構成ファイルを作成できます。詳細は、11.2.3項「複数のJSF構成ファイルについての考慮事項」を参照してください。

JDeveloperでJSFテクノロジを使用するプロジェクトを作成すると、空のfaces-config.xmlファイルが/WEB-INFに自動的に作成されます。

通常、faces-config.xmlでは、次の設定を構成できます。

ADFデータ・コントロールを使用してデータ・バインドされたWebページを作成する場合、ADFフェーズ・リスナーもfaces-config.xmlに登録する必要があります。A.9.1.2項を参照してください。

A.9.1 faces-config.xmlでサポートされるタスク

faces-config.xmlファイルでは、次のJSFタスクがサポートされます。

A.9.1.1 ADF Facesコンポーネントのレンダー・キットの登録

アプリケーションでADF Facesコンポーネントを使用する場合、faces-config.xml<application>要素にADFのデフォルト・レンダー・キットを追加する必要があります。すでに述べたように、JSFテクノロジを使用するプロジェクトを新規作成すると、空のfaces-config.xmlファイルが1つ自動的に作成されます。ADF Facesコンポーネントを最初にJSFページに挿入したときに、ADFコンポーネントのデフォルト・レンダー・キットが自動的にfaces-config.xmlに挿入されます(例A-16を参照)。

例A-16 ADF Facesコンポーネント用のfaces-config.xmlの構成

<?xml version="1.0" encoding="windows-1252"?>
<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
  <!-- Default render kit for ADF components -->
  <application>
    <default-render-kit-id>oracle.adf.core</default-render-kit-id>
  </application>
  ...
</faces-config>

A.9.1.2 ADFバインディングのフェーズ・リスナーの登録

ADFフェーズ・リスナーは、ADFページ・ライフサイクルを実行するために使用されます。ADFデータ・バインディングを使用する場合、ADFライフサイクル・フェーズ用のフェーズ・リスナーを指定する必要があります。JDeveloperでADFデータ・コントロールを最初にJSFページに挿入したときに、標準のADFフェーズ・リスナーがfaces-config.xml<lifecycle>要素に追加されます。

ADFフェーズ・リスナーは、すべてのJSFフェーズをリスニングし、必要に応じてそれらのフェーズの前後にモデルの準備、モデル更新の検証、およびレンダリングするページの準備に伴う独自フェーズを実行します。ADFライフサイクル・フェーズがJSFライフサイクル・フェーズと統合される仕組みの詳細は、13.2.3項「実行時に行われる処理: JSFおよびADFのライフサイクル」を参照してください。例A-17は、ADFフェーズ・リスナーを含むfaces-config.xmlの一部を示しています。

エラー処理などのカスタム動作が必要な場合、標準のADFフェーズ・リスナーをサブクラス化できます。ADFフェーズ・リスナーをサブクラス化する方法の詳細は、20.8項「ADFアプリケーション内の例外の処理と表示」を参照してください。サブクラスが検出された場合、faces-config.xmlに標準のフェーズ・リスナーは再追加されません。

例A-17 faces-config.xmlでのADFフェーズ・リスナーの登録

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
<lifecycle>
  <phase-listener>
    oracle.adf.controller.faces.lifecycle.ADFPhaseListener
  </phase-listener>
</lifecycle>
  ...
</faces-config>

A.9.1.3 メッセージ・リソース・バンドルの登録

ローカライズされたラベルおよびメッセージ用にリソース・バンドルを使用する場合、faces-config.xml<application>要素に<message-bundle>としてリソースを追加します(例A-18を参照)。SRDemoアプリケーションでは、UIの文字列を格納するためにリソース・プロパティ・ファイルを使用しています。

例A-18 faces-config.xmlでのメッセージ・バンドルの登録

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
  <application>
    ...
    <message-bundle>oracle.srdemo.view.resources.UIResources</message-bundle>
    ...
  </application>
  ...
</faces-config>

ページでメッセージ・バンドルを参照する方法の詳細は、22.4項「アプリケーションの国際化」を参照してください。

A.9.1.4 サポートされるロケールの構成

アプリケーションのデフォルト・ロケールとサポートされるすべてのロケールは、faces-config.xml<application>要素に登録します(例A-19を参照)。

例A-19 faces-config.xmlでのデフォルトおよびサポートされるロケールの登録

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
  <application>
    ...
    <locale-config>
      <default-locale>en</default-locale>
      <supported-locale>en-US</supported-locale>
      <supported-locale>es</supported-locale>
      <supported-locale>fr</supported-locale>
    </locale-config>
  </application>
  ...
</faces-config>
A.9.1.4.1 留意事項

JSFでは、単一のfaces-config.xmlファイルに複数の<application>要素を含めることが可能です。ただし、JSF構成エディタで編集できるのは、ファイルの最初のインスタンスのみです。他の<application>要素を操作するには、XMLエディタを使用してファイルを直接編集する必要があります。

A.9.1.5 ナビゲーション・ルールおよびケースの作成

ナビゲーション・ルールおよびケースはfaces-config.xmlファイルに直接入力できますが、JSFナビゲーション・モデラーを使用することをお薦めします。ナビゲーション・モデラーを使用すると、JSFアプリケーションの各ページをレイアウトして、ダイアグラム形式でページ間のナビゲーションを追加できます。ナビゲーション・モデラーを表示するには、アプリケーション・ナビゲータでfaces-config.xmlファイルをダブルクリックします。ビジュアル・エディタで「ダイアグラム」タブをアクティブにすると、ナビゲーション・モデラーが表示されます。

JDeveloperで空のfaces-config.xmlが最初に作成されたときに、レイアウトや注釈などのダイアグラム詳細を保持するためのダイアグラム・ファイルも作成されます。JDeveloperでは、常にこのダイアグラム・ファイルは、faces-config.xmlファイルとともに保持され、アプリケーションで必要となるすべての設定が保持されます。そのため、バージョニングやソース・コントロールを使用する場合、ダイアグラム・ファイルは対応するfaces-config.xmlファイルに含まれます。

ダイアグラムにナビゲーション・ケースを追加すると、faces-config.xmlに反映されます。ファイルを直接編集する必要はありません。

ナビゲーション・ルールでは、結果値を指定する1つ以上のケースを定義します。Webページのナビゲーション・コンポーネントでは、結果値がそのaction属性に指定されており、ユーザーがそのコンポーネントをクリックすると特定のナビゲーション・ケースが起動されます。たとえば、サンプル・アプリケーションのSRListページでは、ユーザーが「View」ボタンをクリックするとアプリケーションにSRMainページが表示されます。「View」ボタンのaction属性には、文字列値Viewが設定されています(例A-20を参照)。例A-21は、SRListページのナビゲーション・ルール内のナビゲーション・ケースに対応するコードを示しています。

例A-20 「View」ボタンに定義されたアクション結果文字列

<af:commandButton text="#{res['srlist.buttonbar.view']}"
                  action="View"/>

例A-21 faces-config.xmlでの静的なナビゲーション・ケースの作成

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
  <navigation-rule>
    <from-view-id>/SRList.jspx</from-view-id>

    <navigation-case>
      <from-outcome>Edit</from-outcome>
      <to-view-id>/SREdit.jspx</to-view-id>
    </navigation-case>

    <navigation-case>
      <from-outcome>View</from-outcome>
      <to-view-id>/SRMain.jspx</to-view-id>
    </navigation-case>

    <navigation-case>
      <from-outcome>Search</from-outcome>
      <to-view-id>/SRSearch.jspx</to-view-id>
    </navigation-case>

    <navigation-case>
      <from-outcome>Create</from-outcome>
      <to-view-id>/SRCreate.jspx</to-view-id>
    </navigation-case>
  </navigation-rule>
  ...
</faces-config>

JSFのナビゲーション・ルール、ナビゲーション・ケースおよびナビゲーション・コンポーネントを作成する方法の詳細は、第16章「ページ・ナビゲーションの追加」を参照してください。

A.9.1.6 カスタム・バリデータおよびコンバータの登録

JSFおよびADF Facesの標準のバリデータおよびコンバータでは、数値範囲と文字列長の一般的な検証チェックと、よく使用されるデータ型の変換機能が提供されます。より複雑な検証用のルールとチェックが必要な場合、またはコンポーネント・データを標準型以外の型に変換する必要がある場合、独自のカスタム・バリデータまたはコンバータを作成できます。

カスタム・バリデータはjavax.faces.validator.Validatorインタフェースを、カスタム・コンバータはjavax.faces.convert.Converterインタフェースをそれぞれ実装する必要があります。アプリケーションでカスタム・バリデータまたはコンバータを使用するには、<validator>または<converter>要素を使用してそれらをfaces-config.xmlに登録する必要があります(例A-22を参照)。カスタム・バリデータの場合、識別子(ID)で登録できます。カスタム・コンバータの場合、IDまたは特定のデータ型の完全修飾クラス名で登録できます。

例A-22 faces-config.xmlでのカスタム・バリデータおよびコンバータの登録

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
  <validator>
    <validator-id>oracle.srdemo.core.CreditCard</validator-id>
    <validator-class>oracle.srdemo.core.CreditCardValidator</validator-class>
  </validator>
  <converter>
    <converter-id>oracle.srdemo.core.CreditCard</validator-id>
    <converter-class>oracle.srdemo.core.CreditCardConverter</converter-class>
  </converter>
  ...
</faces-config>

A.9.1.7 マネージドBeanの登録

JSFにおいて、マネージドBeanは、アプリケーションのWeb層とビジネス層の間のデータ管理に使用されるJavaBeansです(データ転送オブジェクトと同様です)。実行時に値やメソッド・バインディング式を通じてページでBeanが参照されると、JSF実装により、Beanのインスタンス化、宣言されたデフォルト値の移入、およびマネージドBeanスコープへのBeanの配置がfaces-config.xmlの定義どおりに実行されます。

faces-config.xmlにマネージドBeanを登録するには、<managed-bean>要素を使用します(例A-23を参照)。マネージドBeanには次の項目を指定する必要があります。

  • 名前: Beanの完全修飾クラス名を使用するかわりにEL式を使用してアプリケーション内でBeanを参照する方法を指定します。

  • クラス: データと、Beanによって使用されるそのデータ用のアクセッサ・メソッドやその他のメソッド(ナビゲーションまたは検証用など)を保持するプロパティを含むJavaBeanです。これには、既存クラス(データ転送クラスなど)またはページに固有のクラス(バッキングBeanなど)を使用できます。

  • スコープ: Beanの保存されるスコープを指定します。有効なスコープは、次のとおりです。

    • application: Beanは、Webアプリケーションが継続する間使用できます。LDAPディレクトリなどのグローバルBeanに適しています。

    • request: Beanは、インスタンス化されてから、レスポンスがクライアントに戻されるまで使用できます。通常、現在ページの有効期間です。

    • session: Beanは、クライアントのセッション全体を通じてクライアントで使用できます。

    • none: Beanは、参照されるたびにインスタンス化されます。

管理プロパティは、Beanがインスタンス化されたときに値を移入できるBeanの任意のプロパティです。Beanが作成されると、宣言された各プロパティに対してsetメソッドが実行されます。マネージドBeanのプロパティを設定値(Beanのマップまたはリスト・プロパティ用の設定値を含む)で初期化するには、<managed-property>要素を使用します。マネージドBeanの管理プロパティを構成する場合、そのプロパティの名前、クラス・タイプおよびデフォルト値を宣言します。

マネージドBeanとマネージドBeanのプロパティは、BeanまたはプロパティのタイプがListまたはMapであるか、java.util.Mapまたはjava.util.Listを実装することを指定すると、リストまたはマップとして初期化できます。リストまたはマップ内の値のデフォルトは、java.lang.Stringです。

例A-23 faces-config.xmlでのマネージドBeanの登録

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  ...
  <!-- This managed bean uses application scope -->
  <managed-bean>
    <managed-bean-name>resources</managed-bean-name>
    <managed-bean-class>
     oracle.srdemo.view.resources.ResourceAdapter
    </managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
  </managed-bean>

  <!-- Page backing beans typically use request scope-->
  <managed-bean>
    <managed-bean-name>backing_SRCreate</managed-bean-name>
    <managed-bean-class>oracle.srdemo.view.backing.SRCreate</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <!--oracle-jdev-comment:managed-bean-jsp-link:1app/SRCreate.jspx-->
    <managed-property>
      <property-name>bindings</property-name>
      <value>#{bindings}</value>
    </managed-property>
  </managed-bean>

  <managed-bean>
    <managed-bean-name>backing_SRManage</managed-bean-name>
    <managed-bean-class>
      oracle.srdemo.view.backing.management.SRManage
    </managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <!--oracle-jdev-comment:managed-bean-jsp-link:1app/management/SRManage.jspx-->
    <managed-property>
      <property-name>bindings</property-name>
      <value>#{bindings}</value>
    </managed-property>
  </managed-bean>

  <!-- This managed bean uses session scope -->
  <managed-bean>
    <managed-bean-name>userState</managed-bean-name>
    <managed-bean-class>oracle.srdemo.view.UserSystemState</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
  ...
</faces-config>

A.10 adf-faces-config.xml

ADF Facesコンポーネントを使用するJSFアプリケーションを作成する場合、faces-config.xmlで要素を構成する以外に、adf-faces-config.xmlファイルでADF Faces固有の機能を構成できます。adf-faces-config.xmlファイルは、JSF式言語(EL)または静的値を使用して要素プロパティを定義できる単純なXML構造を持っています。

JDeveloperでADF Facesコンポーネントを最初にJSFページに挿入したときに、初期のadf-faces-config.xmlファイルがViewControllerプロジェクトの/WEB-INFディレクトリに自動的に作成されます。例A-24は、初期のadf-faces-config.xmlファイルを示しています。

通常、adf-faces-config.xmlでは、次の設定を構成できます。

例A-24 JDeveloperにより作成される初期のadf-faces-config.xml

<?xml version="1.0" encoding="windows-1252"?>
<adf-faces-config xmlns="http://xmlns.oracle.com/adf/view/faces/config">

  <skin-family>oracle</skin-family>

</adf-faces-config>

A.10.1 adf-faces-config.xmlでサポートされるタスク

adf-faces-config.xmlファイルでは、次のJSFタスクがサポートされます。

A.10.1.1 アクセシビリティ・レベルの構成

アプリケーションでのアクセシビリティ・サポートのレベルを定義するには、<accessibility-mode>を使用します。サポートされる値は次のとおりです。

  • default: 出力でアクセシビリティ機能がサポートされます。

  • inaccessible: 出力サイズを最適化するため、アクセシビリティ固有の構成要素は削除されます。

  • screenReader: スクリーン・リーダーによる機能向上を目的として、アクセシビリティ固有の構成要素が追加されます(ただし、一般のユーザーには適切ではない場合があります。たとえば、アクセシビリティ・モードがスクリーン・リーダー・モードに設定されていると、アクセス・キーは表示されません)。

例A-25 アクセシビリティ・レベルの構成

<!-- Set the accessibility mode to screenReader -->
<accessibility-mode>screenReader</accessibility-mode>

A.10.1.2 通貨コードおよび数値の桁/小数点の区切り記号の構成

通貨フィールドの書式設定に使用する通貨コードを指定する場合、および数値の桁と小数点に使用する区切り記号を定義する場合、次の要素を使用します。

  • <currency-code>: 独自のコンバータで通貨コードが指定されない通貨フィールドを書式設定するため、oracle.adf.view.faces.converter.NumberConverterによって使用されるデフォルトのISO 4217通貨コードを定義します。

  • <number-grouping-separator>: 数値の桁に使用する区切り記号(カンマなど)を定義します。ADF Facesでは自動的に現行ロケールからセパレータが導出されますが、この要素内に値を指定することで、このデフォルトをオーバーライドできます。設定すると、解析および書式設定時にその値がoracle.adf.view.faces.converter.NumberConverterによって使用されます。

  • <decimal-separator>: 小数点に使用する区切り記号(ピリオドやカンマなど)を定義します。ADF Facesでは自動的に現行ロケールからセパレータが導出されますが、この要素内に値を指定することで、このデフォルトをオーバーライドできます。設定すると、解析および書式設定時にその値がoracle.adf.view.faces.converter.NumberConverterによって使用されます。

例A-26 通貨コードおよび数値の桁/小数点の区切り記号の構成

<!-- Set the currency code to US dollars. -->
<currency-code>USD</currency-code>

<!-- Set the number grouping separator to period for German -->
<!-- and comma for all other languages -->
<number-grouping-separator>
 #{view.locale.language=='de' ? '.' : ','}
</number-grouping-separator>

<!-- Set the decimal separator to comma for German -->
<!-- and period for all other languages -->
<decimal-separator>
 #{view.locale.language=='de' ? ',' : '.'}
</decimal-separator>

A.10.1.3 拡張デバッグ出力の構成

<debug-output>をtrueに設定すると、ADF Facesのデバッグ出力機能が拡張されます。デバッグ出力に次の機能が追加されます。

  • 自動インデント

  • HTMLのブロックを処理したコンポーネントを識別するコメント

  • 適切に対応していない要素、単一要素での同一属性の反復使用、またはその他の不適切なマークアップ問題の検出

  • 一般的なHTMLエラー(他の<form>タグ内部の<form>タグ、または不適切な場所で使用されている<tr><td>タグなど)の検出

例A-27 拡張デバッグ機能の有効化

<!-- Activate the ADF Faces enhanced debugging features -->
<debug-output>true</debug-output>

A.10.1.4 クライアント側の検証および変換の構成

ADF Facesのバリデータとコンバータでは、サーバー側の検証および変換と同様に、クライアント側の検証および変換がサポートされます。ADF Facesのクライアント側のバリデータおよびコンバータは、サーバー側のバリデータおよびコンバータと同じように動作しますが、クライアントではJavaScriptが使用されます。ADF FacesのJavaScript対応のバリデータとコンバータは、フォームの送信時にクライアントで実行されるため、サーバーへのラウンドトリップなしでエラーを捕捉できます。ただし、<client-validation-disabled>をtrueに設定することで、ADF Facesアプリケーションでクライアント側の変換と検証を無効化できます。

例A-28 クライアント側の検証および変換の無効化

<!-- Disable client validation -->
<client-validation-disabled>true</client-validation-disabled>

A.10.1.5 言語読取り方向の構成

ADF Facesのデフォルトのページ・レンダリング方向は、ブラウザで使用されている言語に基づきます。ただし、<right-to-left>要素でtrueまたはfalseを使用することにより、デフォルトのページ・レンダリング方向を明示的に設定できます。

例A-29 右から左にページをレンダリングするための構成

<!-- Render the page right-to-left for Arabic -->
<!-- and left-to-right for all other languages -->
<right-to-left>
 #{view.locale.language=='ar' ? 'true' : 'false'}
</right-to-left>

A.10.1.6 スキン・ファミリの構成

ADF Facesのデフォルトでは、すべてのページにOracleの<skin-family>が使用されます。この設定を変更するには、カスタムの<skin-family>を指定します。A.11.1項「adf-faces-skins.xmlでサポートされるタスク」も参照してください。

カスタム・スキンの作成方法の詳細は、22.3項「スキンの使用によるルック・アンド・フィールの変更」を参照してください。

例A-30 すべてのページで使用されるスキンの構成

<!-- Specify custom skin instead of Oracle skin -->
<skin-family>srdemo<skin-family>

A.10.1.7 出力モードの構成

ADF Facesで使用される出力モードを変更するには、次のいずれかの値を使用して<output-mode>要素を設定します。

  • default: デフォルトのページ出力モード(通常表示)

  • printable: 印刷可能なページに適した出力モード

  • email: ページ・コンテンツの電子メール送信に適した出力モード

例A-31 出力モードの構成

<!-- Set the output mode to printable -->
<output-mode>printable</output-mode>

A.10.1.8 アクティブなProcessScopeインスタンス数の構成

ADF Facesのデフォルトでは、アクティブなprocessScopeインスタンスの最大数が15に設定されます。この数を変更するには、<process-scope-lifetime>要素を使用します。静的値を使用する必要があります。

例A-32 アクティブなProcessScopeインスタンス数の構成

<!-- Set the maximum number of processScope instances to 10 -->
<process-scope-lifetime>10</process-scope-lifetime>

A.10.1.9 タイムゾーンおよび年オフセットの構成

日付を処理して表示するためのタイムゾーンと、2桁のみの年を解析するための年オフセットを設定するには、次の要素を使用します。

  • <time-zone>: ADF Facesのデフォルトでは、クライアント・ブラウザのタイムゾーンが使用されます。この値は、文字列がDateに変換される際に、oracle.adf.view.faces.converter.DateTimeConverterによって使用されます。

  • <two-digit-year-start>: 値が設定されない場合、デフォルトで1950年が使用されます。この値は、文字列がDateに変換される際に、oracle.adf.view.faces.converter.DateTimeConverterによって使用されます。

例A-33 タイムゾーンおよび年オフセットの構成

<!-- Set the time zone to Pacific Daylight Savings Time -->
<time-zone>PDT</time-zone>

<!-- Set the year offset to 2000 -->
<two-digit-year-start>2000</two-digit-year-start>

A.10.1.10 カスタムのアップロード・ファイル・プロセッサの構成

ほとんどのアプリケーションでは、ADF Facesにより提供されるデフォルトのUploadedFileProcessorインスタンスを置き換える必要はありません。ただし、アプリケーションで非常に大きなファイルのアップロードをサポートする必要がある場合や、アプリケーションがファイル・アップロードに大きく依存している場合、デフォルトのプロセッサをカスタムのUploadedFileProcessor実装で置き換えることもできます。たとえば、リクエスト時にADF Facesで一時記憶域を使用するかわりに、ファイルを最終的な保存先に即座に格納する実装を使用することで、パフォーマンスが向上する可能性があります。デフォルトのプロセッサを置き換えるには、<uploaded-file-processor>要素を使用してカスタム実装を指定します。

例A-34 カスタムのアップロード・ファイル・プロセッサの構成

<!-- Use my UploadFileProcessor class -->
<uploaded-file-processor>
 com.mycompany.faces.myUploadedFileProcessor
</uploaded-file-processor>

A.10.1.11 ヘルプ・サイトURLの構成

アプリケーションにヘルプを提供するためにOracle Help for the Web(OHW)を使用する場合、URLに対応する任意のJSFタグにヘルプ・コンテンツを添付できます。これを行うには、<oracle-help-servlet-url>要素を使用してヘルプ・サイトのURLを構成します。ADF Facesでは、OHWリリース2.0と、それ以前のリリースがサポートされます。

ヘルプ・コンテンツをJSFタグに添付するには、adfFacesContext.helpTopic ELオブジェクトを使用します。たとえば、次のように入力します。

<h:outputLink value="#{adfFacesContext.helpTopic.someTopicID}">
   <h:outputText value="Help!"/>
</h:outputLink>

例A-35 ヘルプ・サイトURLの構成

<!-- Set the help site URL -->
<oracle-help-servlet-url>mywebsite.com/project_one/help</oracle-help-servlet-url>

A.10.1.12 adf-faces-config.xmlからの構成プロパティ値の取得

adf-faces-config.xmlファイルで要素を構成すると、次の方法のいずれかを使用してプロパティ値を取得できます。

  • AdfFacesContextクラスをプログラムで使用します。

    AdfFacesContextクラスは、ADF Facesで必要とされるリクエスト単位およびWebアプリケーション単位のすべての情報に対応するコンテキスト・クラスです。AdfFacesContextクラスのインスタンスは、リクエストごとに1つ存在します。JSFのFacesContextクラスと似ていますが、AdfFacesContextクラスはFacesContextを拡張したものではありません。

    ADF Faces構成プロパティをプログラム的に取得するには、最初にgetCurrentInstance() staticメソッドをコールしてAdfFacesContextオブジェクトのインスタンスを取得し、次に目的のプロパティを取得するメソッドをコールします。次にこの例を示します。

    // Get an instance of the AdfFacesContext object
    AdfFacesContext context = AdfFacesContext.getCurrentInstance();
    
    // Get the time-zone property
    TimeZone zone = context.getTimeZone();
    
    // Get the right-to-left property
    if (context.isRightToLeft())
    {
      ...
    }
    

    ADF Facesの構成プロパティを取得するメソッドのリストは、oracle.adf.view.faces.context.AdfFacesContextのJavadocを参照してください。

  • JSF EL式を使用して、コンポーネントの属性値をADF Faces暗黙オブジェクト(adfFacesContext)のプロパティの1つにバインドします。

    AdfFacesContextクラスには、adfFacesContextというEL暗黙的変数があり、JSF EL式で使用するためのコンテキスト・オブジェクト・プロパティを公開します。JSF EL式を使用して、コンポーネントの属性値をadfFacesContextオブジェクトのプロパティの1つにバインドできます。たとえば、次のEL式では、<currency-code>プロパティがJSF ConvertNumberコンポーネントのcurrencyCode属性値にバインドされています。

    <af:outputText>
      <f:convertNumber currencyCode="#{adfFacesContext.currencyCode}"/>
    </af:outputText>
    

A.11 adf-faces-skins.xml

adf-faces-skins.xmlファイルはオプションです。このファイルは、アプリケーションでカスタム・スキンを使用する場合にのみ必要です。このファイルを作成するには、テキスト・エディタを使用します。作成したファイルは、/WEB-INFに格納してください。

adf-faces-skins.xmlでは、1つ以上のカスタム・スキンを指定できます。

例A-36 adf-faces-skins.xml

<?xml version="1.0" encoding="windows-1252"?>
<skins xmlns="http://xmlns.oracle.com/adf/view/faces/skin">
  <skin>
    <id>purple.desktop</id>
    <family>purple</family>
    <render-kit-id>oracle.adf.desktop</render-kit-id>
    <style-sheet-name>skins/purple/purpleSkin.css</style-sheet-name>
    <bundle-name>oracle.adfdemo.view.faces.resource.SkinBundle</bundle-name>
  </skin>
</skins>

A.11.1 adf-faces-skins.xmlでサポートされるタスク

カスタム・スキンを使用するようアプリケーションを構成する場合、<family>の値には、adf-faces-config.xml<skin-family>要素と同じ値を指定します。A.10.1.6項「スキン・ファミリの構成」を参照してください。

カスタム・スキンの作成方法の詳細は、22.3項「スキンの使用によるルック・アンド・フィールの変更」を参照してください。