ヘッダーをスキップ
Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド
11gリリース1(11.1.1)
B52029-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

A ADF Facesの構成

この付録では、JSFおよびADF Facesの機能を各種XML構成ファイルで構成する方法、RequestContext APIを使用してADF Faces構成値を取得する方法、およびJavaScriptのパーティション化の使用方法について説明します。

この章に含まれる項は次のとおりです。

A.1 ADF Facesの構成の概要

JSF Webアプリケーションには、特定の構成ファイルのセット(web.xmlおよびfaces-config.xml)が必要です。ADFアプリケーションでは、構成情報がadf-config.xmlファイルおよびadf-settings.xmlファイルにも格納されます。ADF FacesはMyFaces Trinidadと同じコード・ベースを共有するため、UIにADF Facesコンポーネントを使用するJSFアプリケーションでは、trinidad-config.xmlファイル(オプションでtrinidad-skins.xmlファイル)も含める必要があります。TrinidadとADF Facesとの関係の詳細は、第1章「ADF Facesリッチ・クライアントの概要」を参照してください。

A.2 web.xmlでの構成

JSFアプリケーションの構成の一部は、Java EEアプリケーション・デプロイメント・ディスクリプタ(web.xml)の内容で決まります。/WEB-INFディレクトリにあるweb.xmlファイルでは、サーバーが認識する必要のあるアプリケーションに関するすべての情報(JDeveloperで自動的に割り当てられる、あるいはアプリケーションのデプロイ時にシステム管理者によって割り当てられるルート・コンテキスト・パス以外)を定義する必要があります。web.xmlファイルでの典型的なランタイム設定には、初期化パラメータ、カスタム・タグ・ライブラリの場所およびセキュリティ設定があります。

ADF Facesを使用するすべてのアプリケーションに対する次の設定がweb.xmlファイルで構成されます。


注意:

ADF Facesコンポーネントをアプリケーションで最初に使用した際に、JDeveloperで、必要なADF Faces構成がweb.xmlファイルに自動的に追加されます。

必要な要素の詳細は、A.2.2項「web.xmlに必要な要素について」を参照してください。

web.xmlのADF Faces関連のオプションの構成要素の詳細は、A.2.3項「web.xmlのADF Facesコンテキスト・パラメータについて」を参照してください。

ADF Faces以外のweb.xmlの構成の詳細は、『Oracle Fusion Middleware Developing Web Applications, Servlets, and JSPs for Oracle WebLogic Server』を参照してください。

A.2.1 web.xmlでのJSFとADF Facesの構成方法

JDeveloperでJSFテクノロジを使用するプロジェクトを作成すると、デフォルト・サーブレットとマッピング要素を使用して、web.xmlの基礎ファイルが/WEB-INFディレクトリに作成されます。

プロジェクトでADF Facesコンポーネントを使用(ライブラリをインポートするだけでなく、コンポーネント・タグをページで使用)する場合、JDeveloperで、デフォルトJSF構成要素だけでなく、次のものもweb.xmlに自動的に追加されます。

  • MyFaces TrinidadフィルタおよびMyFaces Trinidadリソース・サーブレットに関連する構成要素

  • clientの値を持つjavax.faces.STATE_SAVING_METHODコンテキスト・パラメータ

アプリケーションでJSPフラグメントを使用するよう選択した場合、アプリケーションで.jsffファイルを認識および解釈するためのJSP構成要素が、JDeveloperで自動的に追加されます。

例A-1に、JSF、ADF Facesおよび.jsffファイルを使用する場合にJDeveloperで追加されるデフォルト要素を持つweb.xmlファイルを示します。

JSFおよびADF Facesの処理に必要なweb.xml構成要素の詳細は、A.2.2項「web.xmlに必要な要素について」を参照してください。

例A-1 生成される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/javaee
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee">
  <description>Empty web.xml file for Web Application</description>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>35</session-timeout>
  </session-config>
  <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
  </mime-mapping>
</web-app>

注意:

データバインドされたWebページの作成にADFデータ・コントロールを使用する場合、アプリケーション・バインディング・コンテナのADFバインディング・フィルタとサーブレット・コンテキスト・パラメータがweb.xmlファイルに追加されます。

ADF Facesの構成オプションは、<context-param>要素を使用してweb.xmlに設定されます。

web.xmlにADF Faces構成要素を追加する手順:

  1. アプリケーション・ナビゲータで、「web.xml」をダブルクリックし、ファイルを開きます。

    JDeveloperでは、web.xmlはデフォルトでは概要エディタで開きます。これは、エディタ・ウィンドウの下部の「概要」タブがアクティブなことで示されます。

    概要エディタを使用してエントリを宣言的に追加または編集すると、JDeveloperでweb.xmlファイルが自動的に更新されます。

  2. web.xmlファイルのXMLコードを直接編集するには、エディタ・ウィンドウの下部の「ソース」をクリックします。

    XMLエディタで要素を編集すると、JDeveloperで変更が概要エディタに反映されます。

追加できるコンテキスト・パラメータの一覧は、A.2.3項「web.xmlのADF Facesコンテキスト・パラメータについて」を参照してください。

A.2.2 web.xmlに必要な要素について

web.xmlに必要なJSFおよびADF Facesに関するアプリケーション全体の構成要素は次のとおりです。

  • コンテキスト・パラメータjavax.faces.STATE_SAVING_METHOD: アプリケーションのビューの状態の格納場所を指定します。この値はデフォルトではserverで、アプリケーションのビューの状態がサーバーに格納されます。ADF Facesを使用する場合は、javax.faces.STATE_SAVING_METHODclientに設定し、ビューの状態をブラウザ・クライアントに格納することをお薦めします。clientに設定した場合、ADF Facesでトークンベースのクライアント側の状態保存が自動的に使用されます。デフォルトの15を使用するかわりに、使用するトークンの数を指定できます。状態保存コンテキスト・パラメータの詳細は、A.2.3項「web.xmlのADF Facesコンテキスト・パラメータについて」を参照してください。

  • MyFaces Trinidadフィルタおよびマッピング: MyFaces Trinidadフィルタorg.apache.myfaces.trinidad.webapp.TrinidadFilterをインストールします。これは、RequestContextオブジェクトの構築によって、ADF Facesの初期化の一部が適切に行われるようにするサーブレット・フィルタです。TrinidadFilterで、ファイルのアップロードも行われます。フィルタ・マッピングで、JSFサーブレットのシンボリック名がMyFaces Trinidadフィルタにマップされます。MyFaces Trinidadフィルタへの転送元のその他のフィルタには、転送およびリクエスト・ディスパッチャが必要です。


    ヒント:

    アプリケーションで複数のフィルタを使用する場合、フィルタを実行順にweb.xmlファイルに必ずリストします。実行時、このファイルにリストされた順にフィルタがコールされます。

  • MyFaces Trinidadリソース・サーブレットおよびマッピング: MyFaces Trinidadリソース・サーブレットorg.apache.myfaces.trinidad.webapp.ResourceServletをインストールします。これは、リソース・ローダーに委任することによってWebアプリケーション・リソース(イメージ、スタイル・シート、JavaScriptライブラリ)を提供します。サーブレット・マッピングでは、MyFaces Trinidadリソース・サーブレットのシンボリック名がURLパターンにマップされます。デフォルトでは、MyFaces Trinidad Coreには/adf/*が、ADF Facesには/afr/*が、JDeveloperで使用されます。

  • JSFサーブレットおよびマッピング(JSFページを作成する場合、またはADF Facesコンポーネントにテンプレートを使用する場合に追加): JSFサーブレットservlet javax.faces.webapp.FacesServletでは、JSFを使用してユーザー・インタフェースを作成するWebアプリケーションのリクエスト処理ライフサイクルが管理されます。マッピングでは、JSFサーブレットのシンボリック名が、パス接頭辞または拡張子接尾辞パターンを使用するURLパターンにマップされます。

    デフォルトでは、次のコードに示すように、パス接頭辞/faces/*がJDeveloperで使用されます。

    <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    

    たとえば、Webページがindex.jspxの場合、URL http://localhost:8080/MyDemo/faces/index.jspxが送信されると、このURLによってJSFサーブレットがアクティブ化されます。JSFサーブレットでfaces接頭辞が取り除かれ、/MyDemo/index.jspxファイルがロードされます。

A.2.3 web.xmlのADF Facesコンテキスト・パラメータについて

ADF Facesの構成オプションは、<context-param>要素を使用してweb.xmlに定義されます。次に例を示します。

<context-param>
  <param-name>oracle.adf.view.rich.LOGGER_LEVEL</param-name>
  <param-value>ALL</param-value>
</context-param>

ADF Facesでは、次のコンテキスト・パラメータがサポートされています。

A.2.3.1 状態保存

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

  • org.apache.myfaces.trinidad.CLIENT_STATE_METHOD: クライアント側状態保存がjavax.faces.STATE_SAVING_METHODを使用して有効になっている場合、使用するクライアント側状態保存のタイプを指定します。CLIENT_STATE_METHODの値は次のとおりです。

    • token: (デフォルト)ページの状態はセッションに格納しますが、トークンはクライアントに永続させます。HttpSessionオブジェクトに格納されている状態のブロックを識別するシンプル・トークンは、クライアントに格納されます。これにより、複数回表示される同一ページがADF Facesで明確になります。フェイルオーバーがサポートされます。

    • all: すべての状態情報がクライアントの(場合によっては非常に大きい)非表示のフォーム・フィールドに格納されます。これは、HttpSessionを使用しない開発者にとって有用です。


    パフォーマンスのヒント:

    クライアント側状態保存が推奨されます。ただし、すべての状態情報を格納するとサイズが大きくなる可能性があることから、クライアント側状態保存をtokenに設定することをお薦めします。

  • org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS: トークンベースのクライアント側状態保存が有効の場合、各ユーザーで一度に格納されるトークンの数を指定します。デフォルトは15です。この数を超えると、表示されてから最も長い時間が経過したページの状態が失われます。戻るボタンを頻繁に使用するユーザーや複数のウィンドウを同時に開くユーザーは、この影響を受けます。フレームに大幅に依存するHTMLアプリケーションを作成する場合、この値を大きくします。

A.2.3.2 デバッギング

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

  • org.apache.myfaces.trinidad.DEBUG_JAVASCRIPT: ADF Facesでは、クライアントへ配信するJavaScriptの曖昧化がデフォルトで行われ、同時にコメントと空白が取り除かれます。これにより、ADF Faces JavaScriptのダウンロード・サイズが大幅に削減されますが、JavaScriptのデバッグが複雑にもなります。アプリケーションの開発時にはtrueに設定して、曖昧化を無効にします。アプリケーションのデプロイにはfalseに設定します。

  • org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION: このパラメータは、デフォルトではfalseに設定されます。trueに設定した場合、ADF FacesでJSPファイルとCSSファイルの更新日付が自動的に確認され、ファイルに変更があった場合、保存されている状態が破棄されます。


    パフォーマンスのヒント:

    trueに設定した場合、オーバーヘッドが増えます。これは、アプリケーションのデプロイ時には避ける必要があります。アプリケーションを実行時環境へデプロイする場合はfalseに設定します。

  • oracle.adf.view.rich.LOGGER_LEVEL: このパラメータでは、デフォルト・レンダー・キットがoracle.adf.richの場合、JavaScriptロギングを有効にします。デフォルトは、OFFです。JavaScriptロギングを有効にする場合、SEVEREWARNINGINFOCONFIGFINEFINERFINESTALLのいずれかのレベルを使用します。自動プロファイラ・インストルメンテーション・コードが有効(A.2.3.7項「プロファイリング」oracle.adf.view.rich.profiler.ENABLEDを参照)な場合、INFOに設定します。


    パフォーマンスのヒント:

    JavaScriptロギングはパフォーマンスに影響します。実行時環境ではこの値をOFFに設定します。

A.2.3.3 ファイルのアップロード

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

  • org.apache.myfaces.trinidad.UPLOAD_MAX_MEMORY: アップロードしたファイルを格納する1つのリクエストで使用されるメモリーの最大サイズを指定します。デフォルトは、100Kです。

  • org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE: アップロードしたファイルを格納する1つのリクエストで使用されるディスク領域の最大サイズを指定します。デフォルトは、2000Kです。

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


注意:

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

A.2.3.4 リソース・デバッグ・モード

次の指定を行えます。

  • org.apache.myfaces.trinidad.resource.DEBUG: リソース・デバッグ・モードが有効かどうかを指定します。デフォルトは、falseです。リソース・デバッグ・モードを有効にする場合、trueに設定します。有効な場合、リソース(JavaScriptライブラリ、イメージ、CSSなど)がキャッシュ可能なことがブラウザで認識されるよう、ADF FacesによってHTTPレスポンス・ヘッダーが設定されます。


    ヒント:

    リソース・デバッグ・モードを有効にした後、ブラウザのキャッシュをクリアして、ブラウザでリソースの最新バージョンがロードされるようにします。


    パフォーマンスのヒント:

    本番環境では、このパラメータは削除するか、falseに設定します。

A.2.3.5 ユーザー・カスタマイズ

セッション変更永続性の有効化および使用の詳細は、第31章「JSFページでのユーザー・カスタマイズの許可」を参照してください。

A.2.3.6 アサーション

oracle.adf.view.rich.ASSERT_ENABLEDパラメータを使用して、ADF Faces内でアサーションを使用するかどうかを指定できます。デフォルトは、falseです。アサーションを有効にするにはtrueに設定します。


パフォーマンスのヒント:

アサーションによってオーバーヘッドが増します。実行時環境では、この値はfalseに設定します。

A.2.3.7 プロファイリング

次のJavaScriptプロファイリング・コンテキスト・パラメータを指定できます。

  • oracle.adf.view.rich.profiler.ENABLED: JavaScript Profilerで用意されている自動プロファイラ・インストルメンテーション・コードを使用するかどうかを指定します。デフォルトは、falseです。JavaScriptプロファイルを有効にするにはtrueに設定します。プロファイラが有効な場合、各ページでプロファイラ・データをフェッチするために追加のラウンドトリップが必要になります。デフォルトでは、/WEB-INF/profiler.xml構成ファイルがJDeveloperで使用されます。profiler.xmlの場所をオーバーライドするには、次に説明するROOT_FILEコンテキスト・パラメータを使用します。DEBUG_JAVASCRIPTtrueに設定し、JavaScriptの曖昧化を無効にする場合もあります。LOGGER_LEVELを最低でもINFOに設定する必要もあります。

  • oracle.adf.view.rich.profiler.ROOT_FILE: 自動プロファイラ・インストルメンテーション・コードが有効の場合にロードする初期profiler.xmlファイルを指定します。ROOT_FILEが指定されていない場合、デフォルトでは、/WEB-INF/profiler.xmlファイルがJDeveloperで使用されます。

A.2.3.8 Faceletサポート

FaceletとADF Facesを組み合せて使用する場合、次の指定を行う必要があります。

  • org.apache.myfaces.trinidad.ALTERNATE_VIEW_HANDLER: パラメータ値をcom.sun.facelets.FaceletViewHandlerに設定することにより、FaceletsViewHandlerをインストールします

FaceletsViewHandlercom.sun.facelets.FaceletViewHandler