A ADF Facesの構成
この付録の内容は次のとおりです。
ADF Facesの構成について
ADF Facesアプリケーションは、XMLディスクリプタ・ファイルを使用して、アプリケーションのADF FacesとJSF機能を構成します。これらの構成ファイルには、ページ、アクション・リスナー、バリデータその他の間でナビゲーションのルールが指定されます。
JSF Webアプリケーションには、特定の構成ファイルのセット(web.xml
およびfaces-config.xml
)が必要です。ADF Facesアプリケーションでは、構成情報がadf-config.xml
ファイルおよびadf-settings.xml
ファイルにも格納されます。ADF FacesはMyFaces Trinidadと同じコード・ベースを共有するため、UIにADF Facesコンポーネントを使用するJSFアプリケーションでは、trinidad-config.xml
ファイル(オプションでtrinidad-skins.xml
ファイル)も含める必要があります。TrinidadとADF Facesとの関係の詳細は、「ADF Facesの概要」を参照してください。
web.xmlでの構成
web.xmlファイルは、JavaベースのWebアプリケーションのデプロイメント・ディスクリプタとして機能します。このファイルを利用すると、サーブレットの事前ロードからリソース・アクセスの制限、セッション・タイムアウトの制御まで、ADF Facesアプリケーションの動作を多くの面で制御できます。
JSFアプリケーションの構成の一部は、Java EEアプリケーション・デプロイメント・ディスクリプタ(web.xml
)の内容で決まります。/WEB-INF
ディレクトリにあるweb.xml
ファイルでは、サーバーが認識する必要のあるアプリケーションに関するすべての情報(JDeveloperで自動的に割り当てられる、あるいはアプリケーションのデプロイ時にシステム管理者によって割り当てられるルート・コンテキスト・パス以外)を定義する必要があります。web.xml
ファイルでの典型的なランタイム設定には、初期化パラメータおよびセキュリティ設定があります。
ADF Facesを使用するすべてのアプリケーションに対する次の設定がweb.xml
ファイルで構成されます。
-
client
に設定されたjavax.faces.STATE_SAVING_METHOD
コンテキスト・パラメータ -
MyFaces Trinidadフィルタおよびマッピング
-
MyFacesTrinidadリソース・サーブレットおよびマッピング
-
JSFサーブレットおよびマッピング
注意:
ADF Facesコンポーネントをアプリケーションで最初に使用した際に、JDeveloperで、必要なADF Faces構成がweb.xml
ファイルに自動的に追加されます。
必要な要素の詳細は、「web.xmlに必要な要素について」を参照してください。
web.xml
のADF Faces関連のオプションの構成要素の詳細は、「web.xmlのADF Facesコンテキスト・パラメータについて」を参照してください。
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
コンテキスト・パラメータ
アプリケーションでJSFフラグメントを使用するよう選択した場合、アプリケーションで.jsff
ファイルを認識および解釈するためのJSP構成要素が、JDeveloperで自動的に追加されます。
次の例に、JSF、ADF Facesおよび.jsff
ファイルを使用する場合にJDeveloperで追加されるデフォルト要素を持つweb.xml
ファイルを示します。
JSFおよびADF Facesの処理に必要なweb.xml
構成要素の詳細は、「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構成要素を追加する手順:
追加できるコンテキスト・パラメータの一覧は、「web.xmlのADF Facesコンテキスト・パラメータについて」を参照してください。
web.xmlに必要な要素に関する必知事項
web.xml
に必要なJSFおよびADF Facesに関するアプリケーション全体の構成要素は次のとおりです。
-
コンテキスト・パラメータ
javax.faces.STATE_SAVING_METHOD
: アプリケーションのビューの状態の格納場所を指定します。デフォルトでは、この値はclient
であり、アプリケーションのビュー状態がブラウザ・クライアントに格納されます。client
に設定した場合、ADF Facesでトークンベースのクライアント側の状態保存が自動的に使用されます。デフォルトの15を使用するかわりに、使用するトークンの数を指定できます。状態保存コンテキスト・パラメータの詳細は、「web.xmlのADF Facesコンテキスト・パラメータについて」を参照してください。 -
MyFaces Trinidadフィルタおよびマッピング: 部分的に
RequestContext
オブジェクトを構成することで、ADF Facesが適切に初期化されていることを保証するサーブレット・フィルタである、MyFaces Trinidadフィルタorg.apache.myfaces.trinidad.webapp.TrinidadFilter
をインストールします。TrinidadFilter
は、ファイル・アップロードも処理します。フィルタ・マッピングは、JSFサーブレットのシンボリック名をMyFaces Trinidadフィルタにマップします。フォワードおよびリクエスト・ディスパッチャは、MyFaces Trinidadフィルタに転送中のその他のフィルタに必要です。ヒント
アプリケーションで複数のフィルタを使用する場合、フィルタを実行順に
web.xml
ファイルに必ずリストします。実行時、このファイルにリストされた順にフィルタがコールされます。 -
MyFaces Trinidadリソース・サーブレットおよびマッピング: リソース・ローダーに委任することでWebアプリケーション・リソース(イメージ、スタイルシート、JavaScriptライブラリ)を処理する、MyFaces Trinidadリソース・サーブレット
org.apache.myfaces.trinidad.webapp.ResourceServlet
をインストールします。サーブレット・マッピングは、MyFaces Trinidadリソース・サーブレットのシンボリック名をURLパターンにマップします。JDeveloperではデフォルトで、MyFaces Trinidad Coreには/adf/*
が、ADF Facesには/afr/*
が使用されます。 -
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
の場合、URLhttp://localhost:8080/MyDemo/faces/index.jspx
が送信されると、このURLによってJSFサーブレットがアクティブ化されます。JSFサーブレットでfaces
接頭辞が取り除かれ、/MyDemo/index.jspx
ファイルがロードされます。
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>
Java APIを使用してコンテキスト・パラメータを設定することで、アプリケーションを構成することもできます。「ADF Facesウィンドウ・マネージャ構成に関する必知事項」を参照してください。
ADF Facesでは、次のコンテキスト・パラメータがサポートされています。
状態保存
次の状態保存コンテキスト・パラメータを指定できます。
-
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アプリケーションを作成する場合は、この値を増やすことができます。パフォーマンスのヒント:
セッションごとの使用中メモリーを減らすには、この値を
2
に減らすことを検討してください。状態トークン・キャッシュを2
に減らした場合、サポートされる「戻る」ボタンのクリック回数は1回になります。「戻る」ボタンがサポートされないアプリケーションについては、この値を1に設定してください。 -
org.apache.myfaces.trinidad.COMPRESS_VIEW_STATE
: セッションで状態保存をグローバルに圧縮するかどうかを指定します。各ユーザー・セッションには、ライブ・メモリーを大量に消費する複数のpageState
オブジェクトが含まれていることがあり、その場合はパフォーマンスに影響があります。このオーバーヘッドは、セッション・レプリケーションの実行時に、クラスタリングではるかに大きな問題になる可能性があります。デフォルトはfalse
です。パフォーマンスのヒント:
データのサイズが圧縮されると、待機時間を減らすことができます。パフォーマンスを最適化するには、
true
に設定します。
デバッグ
次のデバッグ・コンテキスト・パラメータを指定できます。
-
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でJSFファイルとCSSファイルの更新日付が自動的に確認され、ファイルに変更があった場合、保存されている状態が破棄されます。パフォーマンスのヒント:
true
の場合、このCHECK_FILE_MODIFICATION
パラメータにより、アプリケーションのデプロイ時には不要となるオーバーヘッドが追加されます。アプリケーションを実行環境にデプロイする場合はfalse
に設定します。 -
oracle.adf.view.rich.LOGGER_LEVEL
: このパラメータでは、デフォルト・レンダー・キットがoracle.adf.rich
の場合、JavaScriptロギングを有効にします。デフォルトは、OFF
です。JavaScriptロギングを有効にする場合、SEVERE
、WARNING
、INFO
、CONFIG
、FINE
、FINER
、FINEST
、ALL
のいずれかのレベルを使用します。パフォーマンスのヒント:
JavaScriptロギングはパフォーマンスに影響します。実行環境では、この値は
OFF
に設定します。 -
oracle.adf.view.rich.REQUEST_ID_TRACING
: このパラメータは、エンド・ユーザー・レポートをサーバー側のログの対応するエントリに関連付けることで、失敗した部分ページ・レンダリング(PPR)リクエストの診断に使用されます。これは、サーバー・ログの一意のECIF番号をPPR URLに追加することで実行されます。このパラメータは、デフォルトではoff
に設定されています。診断機能をアクティブ化するには、パラメータをPPR
に設定します。
ファイルのアップロード
次のファイル・アップロード・コンテキスト・パラメータを指定できます。
-
org.apache.myfaces.trinidad.UPLOAD_MAX_MEMORY
: 1回のリクエストでアップロード・ファイルを格納するために使用できる最大メモリー容量を指定します。デフォルトは100KBです。 -
org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE
: アップロードしたファイルを格納する1つのリクエストで使用されるディスク領域の最大サイズを指定します。デフォルトは2000KBです。 -
org.apache.myfaces.trinidad.UPLOAD_TEMP_DIR
: ファイルのアップロード時に一時ファイルを格納するディレクトリを指定します。デフォルトは、ユーザーの一時ディレクトリです。
注意:
ファイル・アップロードの初期化パラメータは、デフォルトのUploadedFileProcessor
のみで処理されます。デフォルト・プロセッサをカスタムUploadedFileProcessor
実装で置き換える場合、パラメータは処理されません。
問合せの保存モード
プレビュー・モードのときにweb.xml
に次のパラメータを指定すると、ユーザーは新しい検索の作成、既存の検索の更新、既存の保存済検索の削除ができなくなります。このパラメータを使用すると、ページ・コンポーザが実行されていなくてもユーザーが編集モードのときに保存済検索を無効にすることもできます。
-
oracle.adf.faces.component.query.saveQueryMode
: ユーザーがプレビュー・モードまたは編集モードのときに保存済検索を表示して使用するかどうかを指定します。有効な値は次のとおりです。-
default
: ユーザーはすべての保存済検索を表示および編集できます。 -
readonly
: ユーザーは保存済検索のみを表示および選択できます。ただし、ユーザーは保存済検索を更新できない可能性があります。 -
hidden
: ユーザーは保存済検索を表示できません。
-
saveQueryMode
属性を特定のqueryコンポーネントに設定すると、グローバル設定がオーバーライドされます。「queryコンポーネントの追加方法」を参照してください。
リソース・デバッグ・モード
次のものを指定できます。
-
org.apache.myfaces.trinidad.resource.DEBUG
: リソース・デバッグ・モードが有効かどうかを指定します。デフォルトはfalse
です。リソース・デバッグ・モードを有効にする場合、true
に設定します。有効な場合、リソース(JavaScriptライブラリ、イメージ、CSSなど)をキャッシュできないことがブラウザで認識されるよう、ADF FacesによってHTTPレスポンス・ヘッダーが設定されます。ヒント
リソース・デバッグ・モードを有効にした後、ブラウザのキャッシュをクリアして、ブラウザでリソースの最新バージョンがロードされるようにします。
パフォーマンスのヒント:
本番環境では、このパラメータは削除するか、
false
に設定します。
Real User Experience Insightに対するアプリケーションの有効化
Real User Experience Insight (RUEI)はWebベースのユーティリティで、ネットワークからリクエストされる、またはネットワークで生成される実際のユーザーのトラフィックに対してレポートを作成します。ネットワーク・インフラストラクチャの最も重要となるポイントで、ページやトランザクションのレスポンス時間を測定します。セッション診断情報を使用すれば、根本原因分析を実行できます。
RUEIでは、実際のユーザー体験に基づいてサーバーおよびネットワーク時間を表示し、キー・パフォーマンス・インディケータ(KPI)とサービス・レベル合意(SLA)をモニターし、定義済のターゲットに違反するインシデントが発生した場合にアラート通知をトリガーすることが可能です。ページ・コンテンツ、サイト・エラー、およびトランザクションの機能要件に関するチェックを実施できます。この情報を使用することで、業務面、技術面から運用を検証できます。RUEIで認識されるすべての項目の可用性、スループットおよびトラフィックに関して、カスタム・アラートを設定することもできます。
web.xml
ファイルにパラメータを追加して、その値をtrue
に設定し、RUEIでoracle.adf.view.faces.context.ENABLE_ADF_EXECUTION_CONTEXT_PROVIDER
を有効にするかどうかを指定します。デフォルトでは、このパラメータは設定されていないかfalse
に設定されています。
RUEIの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のReal User Experience Insightに対するアプリケーションの有効化に関する項を参照してください。
アサーション
oracle.adf.view.rich.ASSERT_ENABLED
パラメータを使用して、ADF Faces内でアサーションを使用するかどうかを指定できます。デフォルトはfalse
です。アサーションを有効にするにはtrue
に設定します。
パフォーマンスのヒント:
アサーションはパフォーマンスに影響します。実行時環境では、この値はfalse
に設定します。
ダイアログ接頭辞
ダイアログを起動する接頭辞を変更するには、org.apache.myfaces.trinidad.DIALOG_NAVIGATION_PREFIX
パラメータを設定します。
デフォルトはdialog:
で、ダイアログを起動するJSFナビゲーション・ルールの結果の冒頭に使用されます(dialog:error
など)。
CSSクラス名の圧縮
org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION
パラメータを設定して、スキニング・キーのCSSクラス名の圧縮を決定できます。
デフォルトはfalse
です。圧縮を無効にする場合、true
に設定します。このパラメータは、値としてEL式も受け付けます。
パフォーマンスのヒント:
圧縮はパフォーマンスに影響します。本番環境では、このパラメータをfalse
に設定します。
アプリケーションに複数のADFスキンがある場合のキャッシュの制御
スキニング・フレームワークは、アプリケーションがリクエストする各スキンの生成されたCSSファイルに関する情報をメモリーにキャッシュします。アプリケーションで異なるスキンが多数使用される場合は、これがパフォーマンスに影響します。org.apache.myfaces.trinidad.skin.MAX_SKINS_CACHED
パラメータの値として、メモリーに情報をキャッシュするスキンの最大数を指定します。このパラメータのデフォルト値は20
です。
テストの自動化
自動化が使用中であることをADF Facesに通知し、外部コンポーネントのid属性を有効にするには、oracle.adf.view.rich.automation.ENABLED
パラメータを使用します。「ADF Facesのテスト自動化の使用」を参照してください。
UIViewRootキャッシュ
UIViewRoot
キャッシングを有効化または無効化するには、org.apache.myfaces.trinidad.CACHE_VIEW_ROOT
パラメータを使用します。トークンのクライアント側状態保存が有効化されている場合、各トークンを使用してUIViewRoot
ツリー全体をキャッシュすることにより、MyFaces Trinidadで更なる最適化が行われます。(これは、スレッドの安全性やセッションのフェイルオーバーには影響しないことに注意してください。)UIViewRoot
ツリーを再インスタンス化する必要がなく、ポストバックの処理スピードが大幅に速くなるため、これはAJAX集中型システムにとって重要な最適化です。
キャッシングを有効にするには、org.apache.myfaces.trinidad.CACHE_VIEW_ROOT
パラメータをtrue
に設定します。これはデフォルトです。キャッシングを無効にするには、パラメータをfalse
に設定します。
注意:
この種のキャッシングは、一部のJSFテクノロジと干渉することが認識されています。特に、Apache MyFaces Tomahawk saveState
コンポーネントが機能せず、Faceletのテンプレート・テキストが二重に表示される場合があります。
テーマと色調スタイル
oracle.adf.view.rich.tonalstyles.ENABLED
パラメータは後方互換性のためにまだ使用可能ですが、パラメータをfalse
に設定し、.AFDarkTone
、.AFMediumTone
、.AFLightTone
および.AFDefaultTone
の色調スタイル・クラスの置換えスタイルとしてテーマを使用します。テーマは色調スタイルより作成しやすく、依存するセレクタが少ない上に、CSS包含セレクタも使用されません。このため、不具合が起こりにくくなります。1つのCSSファイル内のセレクタ数に対する制限により、色調スタイルおよびテーマの両方を、同じアプリケーションでサポートすることはできません。
部分ページ・レンダリング
部分ページ・レンダリング(PPR)最適化を有効化および無効化するには、org.apache.myfaces.trinidad.PPR_OPTIMIZATION
パラメータを使用します。このパラメータは、デフォルトではoff
に設定されています。パフォーマンスとPPRの効率を向上するにはon
に設定します。
部分ページ・ナビゲーション
oracle.adf.view.rich.pprNavigation.OPTIONS
パラメータを使用して、部分ページ・ナビゲーションを有効化および無効化します。デフォルトでは、値はoff
です。部分ページ・ナビゲーションでは、アプリケーション全体で同じベース・ページを使用し、単にページ本体のコンテンツを各ナビゲーションに置き換えます。このプロセスにより、ページが新しくなるたびにJavaScriptライブラリとスタイル・シートを再ロードする必要がなく、パフォーマンスが向上します。「部分ページ・ナビゲーションの使用」を参照してください。
有効な値は次のとおりです。
-
on
: アプリケーションのPPRナビゲーションを有効にします。注意:
パラメータを有効にする場合、ナビゲーションに含まれるコマンド・コンポーネントの
partialSubmit
属性をtrue
に設定する必要があります。partialSubmit
の詳細は、「イベントおよび部分ページ・レンダリング」を参照してください。 -
off
: アプリケーションのPPRナビゲーションを無効にします。 -
onWithForcePPR
: コマンド・コンポーネントでのアクションの結果としてナビゲーションが行われる場合、コンポーネントのpartialSubmit
属性がtrue
に設定されている場合と同様に、アクションは常にPPRを使用して配信されます。partialSubmit
の詳細は、「イベントおよび部分ページ・レンダリング」を参照してください。コンポーネントのpartialSubmit
がすでにtrue
に設定されている場合、フレームワークでの処理はありません。partialSubmit
がtrue
に設定されていない場合、ドキュメント全体がリフレッシュされ、古いページ・リフレッシュ動作が保持されます。アクション・コンポーネントにナビゲーションが含まれない場合も、ドキュメント全体がリフレッシュされます。
ポストバック・ペイロード・サイズの最適化
デフォルトでは、PPRではすべてのフィールドがサーバーに戻されます。遅延時間が長く帯域幅の低いネットワーク上のアプリケーションでは、このためにパフォーマンスが低下する場合があります。
oracle.adf.view.rich.POSTBACK_PAYLOAD_TYPE
パラメータを使用して、ADF Facesの編集可能なコンポーネントの値が最後のリクエスト以後に変更されている場合のみ戻すようにアプリケーションを構成します。
有効な値は次のとおりです。
-
full
: すべてのフィールドが戻されます(デフォルト)。 -
dirty
: 最後のリクエスト以後に変更されている編集可能なコンポーネントの値のみ戻されます。ただし、次のものは常に戻されます。-
変換または検証に失敗したコンポーネントの値
-
サード・パーティのコンポーネントの値
-
リクエスト・スコープまたはバッキングBeanスコープの値にバインドされているコンポーネントの値
-
af:codeEditor
、af:richTextEditor
、af:inputFile
コンポーネントの値
-
注意:
dirty
を選択すると、すべてのADF Faces編集可能コンポーネントに対してクライアント・コンポーネントが作成されます。これにより、レスポンス・ペイロード・サイズが若干大きくなります。
JavaScriptのパーティション化
oracle.adf.view.rich.libraryPartitioning.DISABLED
パラメータを使用して、JavaScriptのパーティション化の有効/無効を切り替えます。デフォルトでは、値はfalse
(有効)です。JavaScriptのパーティション化を使用すると、ページのクライアント・コンポーネントによって必要とされるJavaScriptのみをダウンロードできます。
有効な値は次のとおりです。
-
false:
JavaScriptのパーティション化が有効にされています(デフォルト)。 -
true
: JavaScriptのパーティション化は無効です。
JavaScriptのパーティション化の使用および構成の詳細は、「JavaScriptライブラリのパーティション化」を参照してください。
フレームバスティング
フレームバスティングは、悪意のあるWebサイトが別のドメインのページをフレームに引き出して偽のページで覆い隠し、元のページの一部のみが表示されるようにしたり、クリックジャックされたページ(ボタンなど)が表示されるようにするクリックジャックを防ぐ方法です。ユーザーがボタンをクリックすると、実際はクリックジャックされたページでボタンをクリックしているため、予期しない結果になります。
たとえば、DomainA
に存在するWebベースの電子メール・アプリケーションに対して、IFrameを使用してDomainA
の電子メール・アプリケーションのページを指すページを作成してDomainB
のWebサイトでページをクリックジャックするとします。2つのページを組み合せて、DomainB
から引き出されたページがIFrameでページの大部分を占めるようにして、アカウントのすべての電子メールを削除するボタンのみが表示されるようにします。実際に電子メール・アプリケーション内で操作していることを認識していないユーザーがボタンをクリックすると、意図せずにすべての電子メールが削除されることになります。
フレームバスティングは次のJavaScriptを使用して、アプリケーションのページがフレーム内で実行されるのをブロックし、クリックジャックを防ぎます。
top.location.href = location.href;
org.apache.myfaces.trinidad.security.FRAME_BUSTING
コンテキスト・パラメータは、アプリケーションでフレームバスティングを管理します。有効な値は次のとおりです。
-
always:
フレームでの実行が試行されると常にエラーが表示されリダイレクトします。 -
differentOrigin
: 別のドメインから派生したページでフレームの実行が試行される場合のみ、エラーが表示されリダイレクトします(デフォルト)。 -
never
: 任意の派生元ドメインの任意のフレームでページを実行できます。注意:
ADF Facesページの場合、次のコンテキスト・パラメータのいずれかを
true
に設定すると、このコンテキスト・パラメータは無視され、never
に設定した場合と同様に動作します。-
org.apache.myfaces.trinidad.util.ExternalContextUtils.isPortlet
-
oracle.adf.view.rich.automation.ENABLED
これはMyFaces Trinidadパラメータであるため、これらのページにも使用できます。My Faces Trinidadアプリケーションにおけるこのパラメータの使用の詳細は、MyFaces Trinidadドキュメントを参照してください。
-
-
whitelist
: ページはoracle.adf.view.ALLOWED_ORIGINS
パラメータの値を使用して、このアプリケーションのドキュメントをフレーム化できる派生元を指定します。
org.apache.myfaces.trinidad.security.FRAME_BUSTING
コンテキスト・パラメータもELをサポートします。ELが使用されると、ELはユーザー・セッションごとに1回評価されます。
FRAME_BUSTING
パラメータをalways
に設定して、アプリケーションがフレームバスティングを使用するように構成すると、フレームでページの実行が試行されるたびに、ユーザーにはページがリダイレクトされているというアラートが表示され、JavaScriptコードが実行されてページが最上位と定義されるため、ページのフレーム内での実行が却下されます。
アプリケーションでフレームを使用する必要がある場合は、パラメータの値をdifferentOrigin
に設定できます。この設定では、フレームの派生元が親ページと異なる場合のみ、フレームバスティングが実行されます。これはデフォルトの設定です。
注意:
ページの派生元はドメイン名、アプリケーション・レイヤー・プロトコル、およびほとんどのブラウザではスクリプトを実行しているHTMLドキュメントのTCPポートを使用して定義されます。これらの値がすべて完全に同一である場合にのみ、ページは同じドメインから派生したとみなされます。
たとえば、次のページは、ポート番号が違うため派生元のチェックに失敗します。
-
http://www.example.com:8888/dir/page.html
-
http://www.example.com:7777/dir/page.html
たとえば、DomainApage2
ページを含むフレームを使用するアプリケーションにDomainApage1
という名前のページがあるとします。外部のDomainBpage1
がDomainApage1
ページのクリックジャックを試行するとします。結果は次のようなウィンドウ階層になります。
-
DomainBpage1
-
DomainApage1
-
DomainApage2
-
-
アプリケーションでdifferentOrigin
にフレームバスティングが設定されていれば、フレームワークは親ウィンドウ階層をたどって、任意の祖先ウィンドウが別のドメインから引き出されているかどうかを判断できます。DoaminBpage1
は別のドメインから派生しているため、DomainApage1ページに対してフレームバスティングJavaScriptコードが実行され、トップレベル・ウィンドウが表示されます。DomainApage2
は同じドメインから派生しているため、DomainApage1
はフレーム内での実行が許可されます。
FRAME_BUSTING
パラメータをwhitelist
に設定した場合、oracle.adf.view.ALLOWED_ORIGINS
パラメータの値は、このアプリケーションのドキュメントのフレーム化を許可された派生元を指定します。
ALLOWED_ORIGINS
パラメータにはスペースの区切りリストを使用できます。リストの形式は、http://www.w3.org/TR/CSP2/#source-listで説明されている、コンテンツ・セキュリティ・ポリシー・ソース・リストです。このスペースで区切られた派生元のリストでは、ホストおよびポートの最初のセグメントでワイルドカードを使用できます。次に例を示します。
http://*.oracle.com:*
フレーム祖先の仕様との違いは、値*
がサポートされ、派生元がコンテンツをフレーム化できることを示すことです。指定しないか、または空やnullのリストが値式から返される場合、値はデフォルトで'self'
になり、同じ派生元でのフレーム化のみが可能なことを示します。
許可された派生元のリストを指定した場合、現在の派生元は自動的にはアプリケーション・コンテンツをフレーム化できません。アプリケーションがこれをできるようにするには、許可された派生元のリストに'self'
を明示的に追加します。
ALLOWED_ORIGINS
パラメータはELをサポートします。EL式はString
のコレクションと、許可された派生元を示す各コレクション・アイテムの文字列を返す必要があります。EL式はユーザー・セッションごとに1回評価されます。
バージョン番号情報
oracle.adf.view.rich.versionString.HIDDEN
パラメータを使用し、バージョン情報をページのHTML上に表示するかどうかを決めます。パラメータがfalse
に設定されると、ADF FacesページのHTMLには、ADF Facesのバージョン、および次の例に示すページの作成に使用される他のコンポーネントの情報が含まれます。
</body><!--Created by Oracle ADF (ADF Faces API - 11.1.1.4.0/ADF Faces Implementation - 11.1.1.4.0, RCF-revision: 39851 (branch: faces-1003-11.1.1.4.0, plugins: 1.2.3), Trinidad-revision: 1051544 (branch: 1.2.12.3-branch, plugins: 1.2.10), build: adf-faces-rt_101221_0830, libNum: 0355 powered by JavaServer Faces API 1.2 Sun Sep 26 03:21:43 EDT 2010 (1.2)), accessibility (mode:null, contrast:standard, size:medium), skin:customSkin.desktop (CustomSkin)--></html>
このバージョン情報を非表示にするため、パラメータをtrue
に設定します。これはデフォルトです。
注意:
本番環境においては、セキュリティ問題を回避するため、このパラメータをtrue
に設定します。開発環境においてデバッグ目的でのみ、false
と設定します。
自動生成されたコンポーネントIDの抑制
プログラムでaf:outputText
またはaf:outputFormatted
コンポーネントを部分ターゲットとして(addPartialTarget()
へのコールを使用して)追加する際は、auto
に設定されたoracle.adf.view.rich.SUPPRESS_IDS
コンテキスト・パラメータを使用します。
デフォルトでは、このパラメータはexplicit
に設定されているため、次のいずれかに当てはまる場合を除き、自動生成されたコンポーネントIDと明示的に設定されたコンポーネントIDの両方を抑制することでコンテンツ・サイズが削減されています。
-
コンポーネントの
partialTriggers
属性が設定されている場合 -
clientComponent
がtrue
に設定されている場合
addPartialTarget()
へのコールでは、partialTriggers
属性が設定されておらず、部分ページ・レンダリングは成功しません。これらのコンポーネントの自動生成されたコンポーネントIDのみを抑制する場合は、パラメータをauto
に設定します。
ADF Facesキャッシング・フィルタ
ADF Facesキャッシング・フィルタ(ACF)は、イメージ、スタイルシート、.pdf
や.zip
ファイルといったドキュメントなどの静的アプリケーション・オブジェクトのキャッシング(または圧縮、あるいはその両方)を有効にすることで、Webアプリケーションのパフォーマンスを上げる場合に使用可能なJava EEサーブレット・フィルタです。これらのオブジェクトは、Oracle Web CacheやOracle Traffic Directorなどの外部Webキャッシュまたはブラウザ・キャッシュでキャッシュされます。コンテンツのキャッシュ可能性は、主に、Webキャッシュ管理者が定義するURLベースのルールで決まります。アプリケーション管理者または作成者はACFを使用して、adf-config.xml
ファイルに直接キャッシング・ルールを定義できます。キャッシング・ルールの定義の詳細は、「ADF Facesキャッシング・フィルタのキャッシング・ルールの定義」を参照してください。
ADF Facesタグ・ライブラリJARには、.js
、.css
、イメージ・ファイル・タイプなどの共通リソース・タイプのデフォルトのキャッシング・ルールが含まれます。これらの固定ルールはadf-settings.xml
ファイルに定義されており、アプリケーションのデプロイ中やデプロイ後には変更できません。ルールが競合する場合は、アプリケーション開発者によってadf-config.xml
に定義されているキャッシング・ルールが優先されます。adf-settings.xml
の設定の詳細は、「adf-settings.xmlの要素に関する必知事項」を参照してください。
Webキャッシュを介したWebアプリケーションへのすべてのトラフィックをルーティングするには、Webキャッシュ管理者がOracle Web CacheおよびOracle Traffic Directorを構成する必要があります。Oracle Web CacheまたはOracle Traffic Directorをインストールしていない場合、<agent-caching>
子要素がtrue
に設定されていれば、adf-config.xml
に定義されたキャッシング・ルールがブラウザのキャッシュに適用されます。ACFがURLリクエスト・パスに含まれるように構成するには、web.xml
ファイルに、次のサーブレット・フィルタ定義を追加します。
-
ACFフィルタ・クラス:
adf-config.xml
に定義されているルールにURLの一致を実行するクラスを指定します。 -
ACFフィルタ・マッピング:
adf-config.xml
に定義されているキャッシング・ルールに一致するURLパターンを定義します。
次の例に、ACFサーブレット定義のサンプルを示します。
<!- Servlet Filter definition ->x <filter> <filter-name>ACF</filter-name> <filter-class>oracle.adf.view.rich.webapp.AdfFacesCachingFilter</filter-class> </filter> <!- servlet filter mapping definition -> <filter-mapping> <filter-name>ACF</filter-name> <url-pattern>*</url-pattern> </filter-mapping>
注意:
アプリケーションに定義されている一連のフィルタの中で、ACFサーブレット・フィルタを最初のフィルタにする必要があります。
コマンド・リンクへのネイティブのブラウザ・コンテキスト・メニューの構成
リンクをレンダリングするADF Facesコマンド・コンポーネントのコンテキスト・メニューの提供を、エンド・ユーザーのブラウザで有効化または無効化するには、oracle.adf.view.rich.ACTION_LINK_BROWSER_CONTEXT_SUPPRESSION
コンテキスト・パラメータを使用します。コンテキスト・メニューにより、コマンド・コンポーネントに指定されている別のアクション(新しいウィンドウにリンクを開くなど)を起動するメニュー・オプションが提供されます。
このパラメータはデフォルトでyes
に設定されているため、ADF Facesコマンド・コンポーネントのコンテキスト・メニューはレンダリングされません。パラメータをno
に設定すると抑制を無効化することができ、ネイティブのブラウザ・コンテキスト・メニューが表示されます。この機能を構成できるADF Facesコマンド・コンポーネントの詳細は、参照してください。
Internet Explorer互換性ビュー・モード
ADF Facesアプリケーションを、Microsoft Internet Explorerの互換モードで実行すると、予測できない動作を引き起こす可能性があります。デフォルトでは、ユーザーがADF Facesアプリケーションにアクセスし、Internet Explorerブラウザが互換性モードに設定されている場合、ADF Facesはユーザーにこのモードの無効化を求めるアラートを表示します。
oracle.adf.view.rich.HIDE_UNSUPPORTED_BROWSER_ALERTS
コンテキスト・パラメータをIECompatibilityModes
に設定して、ユーザーにこのメッセージを非表示にします。
注意:
このメッセージが非表示見になっていても、oracle.adf.view.rich.LOGGER_LEVEL
パラメータがWARNING
かより詳細レベルに設定されている場合は、警告レベルのログ・メッセージがJavaScriptログにレポートされます。「デバッグ」を参照してください。
セッション・タイムアウトの警告
リクエストがサーバーに送信されると、セッション・タイムアウト値がsession-timeout
パラメータの値に基づいて、ページに書き込まれます。web.xml
ファイルが作成されている場合、デフォルトでは、これは60分に設定されています。Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発のsession-configを参照してください。
コンテキスト・パラメータoracle.adf.view.rich.sessionHandling.WARNING_BEFORE_TIMEOUT
を使用して、セッション・タイムアウトの警告の間隔を構成できます。設定した場合、ユーザーは、警告ダイアログでセッションを延長することができ、セッションの期限が切れてページがリフレッシュされるときに通知が送信されます。ユーザーへの通知が頻繁に行われないようにするには、タイムアウトの警告メカニズムにより、クライアントが、最後のキーボードまたはマウス・イベントを検知し、アクティブなままかどうかを判断しようとします(警告ダイアログに固有ではありません)。最後のアクティビティがセッション・タイムアウトの警告の間隔よりも最近の場合、サーバーに対してサーバー・セッション・タイムアウト値をリセットするリクエストが行われます。アプリケーションのセキュリティ構成に応じて、アクティビティが検出されない場合、セッションの期限が切れると、ユーザーはページのログにリダイレクトされます。
WARNING_BEFORE_TIMEOUT
の値が120秒より少ない場合、ページにクライアントの状態保存が使用されている場合、またはセッションが無効化されている場合は、機能が無効化されます。セッション・タイムアウト値は、セッションから直接取得されます。
次の例に、セッションがタイムアウトする120秒前に警告ダイアログを表示する構成を示します。
<context-param> <param-name>oracle.adf.view.rich.sessionHandling.WARNING_BEFORE_ TIMEOUT</param-name> <param-value>120</param-value> </context-param>
このパラメータのデフォルト値は120秒です。さらに、セッション・タイムアウトの設定が短すぎる場合にユーザーへの通知が頻繁に行われないようにするには、実際のWARNING_BEFORE_TIMEOUT
の値を動的に決定します。この場合、セッション・タイムアウトは、2分を超えるように設定する必要があります。そうしなければ、機能は無効になります。
注意:
WARNING_BEFORE_TIMEOUT
(秒単位で表される)はsession-timeout
(分単位で表される)よりも短く設定される必要があります。
HTTPストリーミングにおけるJSPタグの実行
JSPページの処理中に、HTTPストリーミング・リクエストでのJSPタグの実行を有効化または無効化するには、oracle.adf.view.rich.tag.SKIP_EXECUTION
パラメータを使用します。Faceletsの処理は含まれません。
デフォルトでは、このパラメータはstreaming
に設定されており、ストリーミング・リクエスト中のJSPタグの実行はスキップされます。ストリーミング・リクエストにタグの実行が必要な場合に、リクエストごとにJSPタグを実行するには、パラメータをoff
に設定します。
クリーンなURL
ADF FacesはURLパラメータを使用して、ウィンドウIDや状態などの情報を保持します。しかし、実際に同じURLがある場合、URLパラメータのために検索エンジンではURLの認識が妨げられ、分析できなくなります。URLパラメータのために、ブックマークを付けることもできなくなります。
デフォルトでは、ADF Facesは、HTML5履歴管理APIを使用して、これらの内部的に使用される動的URLパラメータを削除します。このAPIを使用できない場合、セッションのCookieが使用されます。
コンテキスト・パラメータoracle.adf.view.rich.prettyURL.OPTIONS
を使用して、URLパラメータを削除する方法を手動で構成することもできます。パラメータが削除されないように、パラメータをoff
に設定します。HTML5履歴管理APIを使用する場合にのみ、パラメータをuseHistoryApi
に設定します。ブラウザがこのAPIをサポートしていない場合、パラメータは削除されません。セッションのCookieを使用してパラメータを削除する場合は、パラメータをuseCookies
に設定します。ブラウザがCookieをサポートしていない場合、パラメータは削除されません。
ページのロード中スプラッシュ画面
図A-1に示すように、ページがロードしているときにデフォルトで表示されるスプラッシュ画面の有効または無効を切り替えるには、oracle.adf.view.rich.SPLASH_SCREEN
パラメータを使用します。
図A-1 ADF Facesスプラッシュ画面
このパラメータは、デフォルトでon
に設定されています。スプラッシュ画面が表示されないようにするには、off
に設定します。
グラフとゲージのイメージ形式
グラフ・コンポーネントとゲージ・コンポーネントのデフォルトの出力形式をHTML5に変更するには、oracle.adf.view.rich.dvt.DEFAULT_IMAGE_FORMAT
パラメータを追加します。
<context-param> <param-name>oracle.adf.view.rich.dvt.DEFAULT_IMAGE_FORMAT</param-name> <param-value>HTML5</param-value> </context-param>
デフォルトでは、このパラメータはすべての新しいアプリケーションに追加されます。有効な値はHTML5
(デフォルト)およびFLASH
です。
レイアウトと表コンポーネントの形状管理
特定のレイアウト・コンポーネントや表がどのように拡大処理されるかをグローバルにコントロールする場合、oracle.adf.view.rich.geometry.DEFAULT_DIMENSIONS
パラメータを追加します。
特定のレイアウト・コンポーネント(af:decorativeBox
, af:panelAccordion
, af:panelDashboard
, af:panelStretchLayout
, af:panelSplitter
, af:panelTabbed
)が拡大できるかどうかは、dimensionsFrom
属性の値に基づきます。これらのコンポーネントのデフォルトの設定はparent
で、これはコンポーネンントのサイズが次の順序で決まることを意味します。
-
inlineStyle
属性から。 -
inlineStyle
に値がない場合は、サイズは親コンテナにより決まります(すなわち、コンポーネントは拡大します)。 -
親コンテナが構成されていないか、その子を拡大できない場合は、サイズがスキンによって決定されます。
しかし、コンポーネントが常にauto
をdimensionsFrom
属性の値として使用することをユーザーが望む場合は(すなわち、コンポーネントはその親コンポーネントが子の拡大を可能としている場合は拡大し、そうでない場合は、コンポーネントのサイズはその子コンポーネントに基づく)、ユーザーはoracle.adf.view.rich.geometry.DEFAULT_DIMENSIONS
パラメータをauto
に設定できます。ユーザーはまた個々のコンポーネントにdimensionsFrom
属性を使用して、この設定をオーバーライドすることができます。
表でも同様に、autoHeightRows
属性が表が拡大するかどうかを決めます。デフォルトでは-1
に設定されており、これは、表のサイズはフェッチされた行の数に基づくことを意味します。しかし、oracle.adf.view.rich.geometry.DEFAULT_DIMENSIONS
パラメータがauto
に設定されている場合、表は親コンポーネントが拡大を可能としている場合は拡大し、そうでない場合は、表のfetchSize
属性で決まる行の数になります。
デフォルトでは、oracle.adf.view.rich.geometry.DEFAULT_DIMENSIONS
パラメータはlegacy
に設定されており、これは、コンポーネントはその標準のデフォルトの値を使用することを意味します。
親コンポーネントが拡大を可能にしている時にレイアウト・コンポーネントと表の両方が常に拡大することを望む場合は、oracle.adf.view.rich.geometry.DEFAULT_DIMENSIONS
パラメータをauto
に設定します。
表を最初に読取り専用としてレンダリング
clickToEdit
タイプのすべての表は、最初に読取り専用としてレンダリングされます。
次のweb.xmlパラメータを設定すると、アプリケーションにおけるclickToEdit
タイプの表がすべて、最初のロード時に読取り専用としてレンダリングされます。行をクリックすると、通常のclickToEdit
動作になります。その他のeditingMode
タイプを使用する表は、いずれも影響を受けません。
<context-param>
<param-name>oracle.adf.view.rich.table.clickToEdit.initialRender.readOnly</param-name>
<param-value>true</param-value>
</context-param>
表におけるスクロールバーの動作
iOSオペレーティング・システムで、表でスクロールを使用するように構成すると、デフォルトではコンテンツの上にマウスを置いたときのみスクロールバーが表示されます。それ以外の場合は、非表示のままです。その他のオペレーティング・システムでは、デフォルトではスクロールバーは常に表示されます。oracle.adf.view.rich.table.scrollbarBehavior
コンテキスト・パラメータを使用して、すべてのオペレーティング・システムでマウスオーバーするまでスクロールバーを表示しないようにできます。
図A-2に、スクロールバーが非表示の表を示します。
図A-2 スクロールバーが非表示
図A-3は、同じ表でユーザーが表の上にマウスを置いたところで、スクロールバーが表示されています。
図A-3 スクロールバー表示
スクロールバーの表示方法をグローバルに制御するには、oracle.adf.view.rich.table.scrollbarBehavior
を追加します。値をoverlay
に設定すると、マウスオーバーが起きるまでスクロールバーは表示されません。値をdefault
に設定するとスクロールバーが常に表示されます。
注意:
oracle.adf.view.rich.table.scrollbarBehavior
パラメータは、値としてEL式も受け付けます。
本番プロジェクト・ステージ
次の場合は、javax.faces.PROJECT_STAGEコンテキスト・パラメータを使用します。
-
XMLで明示的に構成されていない場合はデフォルト値を強制
-
本番環境で不適切な値が設定されている場合に警告を生成
デフォルトでは、パラメータはPRODUCTIONに設定されます。次に例を示します。
<param-value>PRODUCTION</param-value>
実行時にApplication.getProjectStage()
を呼び出すことにより、構成されている値をアプリケーション・オブジェクトに問い合わせることができます。Productionステージで次のいずれかのパラメータがONに設定されている場合、警告が生成されます。
-
oracle.adf.view.rich.ASSERT_ENABLED
-
oracle.adf.view.rich.automation.ENABLED (web.xml内またはシステム・プロパティとして設定)
また、FALSEに設定されている場合に警告を生成するTrinidadおよびADF Facesパラメータには次のものが含まれます。
-
org.apache.myfaces.trinidad.DEBUG_JAVASCRIPT
-
org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION
-
org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION
-
org.apache.myfaces.trinidad.resource.DEBUG
-
<debug-output>
(trinidad-config.xml
ファイルから)
注意:
TrinidadパラメータがXMLを介して設定されている場合は追加の警告が生成されます。
org.apache.myfaces.trinidad.CLIENT_ID_CACHING
Systemプロパティが無効になっている場合にも警告が生成されます。
例のヒントの切替え
コンテキスト・パラメータoracle.adf.view.rich.component.DEFAULT_HINT_DISPLAY
は、noneに設定すると入力フィールドに関するヒントをすべてオフにする中央スイッチです。
web.xml
のコンテキスト・パラメータoracle.adf.view.rich.component.DEFAULT_HINT_DISPLAY
では、noneに設定するとフレームワークのすべてのコンポーネントでヒントをオフにすることができます。
デフォルトでは、パラメータはautoに設定されており、コンポーネント・ヒントの表示モードはフレームワークで決定できるようになっています。デフォルトの動作では、コンポーネントがフォーカスを取得したときに、ノート・ウィンドウ・ヒントとして表示されます。
コンテキスト・パラメータは、oracle.adf.view.rich.component.DefaultHintDisplay
を返すすべてのEL式をサポートします。
<context-param>
<param-name>oracle.adf.view.rich.component.DEFAULT_HINT_DISPLAY</param-name>
<param-value>none</param-value>
</context-param>
web.xmlのその他のコンテキスト・パラメータに関する必知事項
アプリケーション全体に関わるその他のオプションのコンテキスト・パラメータは次のとおりです。
-
javax.faces.CONFIG_FILE
: JSFアプリケーション構成リソース・ファイルへのパスを指定します。次のコードに示すとおり、値には、アプリケーション・コンテキストの相対パスのカンマ区切りリストを使用します。アプリケーションで複数の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>
-
javax.faces.DEFAULT_SUFFIX
: JSFコンポーネントを含むJSPページのファイル拡張子(接尾辞)を指定します。デフォルト値は.jsp
です。注意:
JSFサーブレットに対する接頭辞マッピング(
/faces
など)を使用する場合、このパラメータ値は無視されます。これはデフォルトで行われます。 -
javax.faces.LIFECYCLE_ID
:javax.faces.lifecycle.LifecycleFactory.DEFAULT_LIFECYCLE
定数によるデフォルト設定以外のライフサイクル識別子を指定します。注意:
LIFECYCLE_ID
を他の値に設定すると、ADF Facesが機能しません。
faces-config.xmlでの構成
faces-config.xmlファイルには、JSFを使用して構築されたWebアプリケーションの構成が含まれます。このファイルを使用して、ADF Facesアプリケーション、マネージドBean、コンバータ、バリデータ、ナビゲーションを構成できます。
JSF構成ファイルには、JSFアプリケーションのリソース(カスタム・バリデータ、マネージドBeanなど)を登録し、ページ間のナビゲーション・ルールをすべて定義します。JSF構成ファイル名は、アプリケーションで任意の名前にできますが、通常、faces-config.xml
ファイルです。小規模なアプリケーションには、通常faces-config.xml
ファイルが1つ含まれます。
アプリケーションでADF Facesコンポーネントを使用する場合、JDeveloperにより、必要な構成要素がfaces-config.xml
に自動で追加されます。faces-config.xml
ファイルの詳細は、Java EE 6チュートリアル(http://download.oracle.com/javaee/index.html
)を参照してください。
faces-config.xmlでのADF Facesの構成方法
JDeveloperでJSFテクノロジを使用するプロジェクトを作成すると、空のfaces-config.xml
ファイルが/WEB-INF
ディレクトリに作成されます。JSFテクノロジを使用するアプリケーション・テンプレート(Java EE Webアプリケーション・テンプレートなど)を基に、新規アプリケーション・ワークスペースを作成した場合も、空のfaces-config.xml
ファイルが自動的に追加されます。「アプリケーション・ワークスペースの作成」を参照してください。
アプリケーションでADF Facesコンポーネントを使用する場合、ADFデフォルト・レンダー・キットIDをoracle.adf.rich
に設定する必要があります。JSFページへのADF Facesコンポーネントの最初の挿入時、またはFusionテンプレートを使用して作成されたアプリケーション・ワークスペースへの最初のJSFページの追加時、次の例に示すとおり、ADFコンポーネントのデフォルト・レンダー・キットがfaces-config.xml
ファイルにJDeveloperで自動的に挿入されます。
<?xml version="1.0" encoding="windows-1252"?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"> <application> <default-render-kit-id>oracle.adf.rich</default-render-kit-id> </application> </faces-config>
通常、次のものをfaces-config.xml
で構成します。
-
メッセージ・バンドル、サポートされているロケールなどのアプリケーション・リソース
-
ページ間のナビゲーション・ルール
-
カスタム・バリデータおよびコンバータ
-
データを保持および処理、UIイベントの処理およびビジネス・ロジックの実行用マネージドBean
注意:
アプリケーションでADF Controllerを使用する場合、これらの項目はadfc-config.xml
ファイルで構成されます。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のADFタスク・フローの概要に関する項を参照してください。
JDeveloperでは、宣言的概要エディタを使用してfaces-config.xml
ファイルを変更できます。JSF構成要素に精通している場合は、XMLエディタを使用してコードを直接編集できます。
faces-config.xmlを編集する手順:
ヒント
JSFでは、1つのfaces-config.xml
ファイルに複数の<application>
要素を使用できます。JSF構成エディタの「概要」モードでは、ファイルの最初の<application>
インスタンスの編集のみが許可されます。その他の<application>
要素については、XMLエディタを使用してファイルを直接編集する必要があります。
adf-config.xmlでの構成
adf-config.xmlファイルには、アプリケーション・モジュールのフェイルオーバー動作、リソース・バンドルのキャッシュ、ページ・バインディングの自動リフレッシュなど、アプリケーションのランタイム・インフラストラクチャを管理するアプリケーションレベルの設定が含まれます。
adf-config.xml
ファイルは、セキュリティ、キャッシュ、変更永続性などのアプリケーション全体の機能の構成に使用されます。他のOracleコンポーネントもこのファイルでプロパティを構成します。
adf-config.xmlでのADF Facesの構成方法
アプリケーションの構成を行う前に、まず、adf-config.xml
ファイルを作成する必要があります。その後、アプリケーションで使用するアプリケーション全体のOracle ADF機能の構成を追加できます。
始める前に:
プロジェクト用のMETA-INF
ディレクトリの作成がまだの場合は、これを作成します。
adf-config.xmlを作成および編集する手順:
ADF Facesキャッシング・フィルタのキャッシング・ルールの定義
ADF Faces Caching Filter (ACF)のキャッシング・ルールは、Webアプリケーションの.adf/META-INF
ディレクトリにあるadf-config.xml
ファイルに定義されています。これらのURLの一致ルールに対して、ACFがリクエスト・パスに含まれるように構成する必要があります。ACFサーブレット・フィルタ定義の追加方法の詳細は、「ADF Facesキャッシング・フィルタ」を参照してください。
1つ以上のキャッシング・ルールの単一のルート要素は<caching-rules>
で、ネームスペースhttp://xmlns.oracle.com/adf/faces/config
に<adf-faces-config>
要素の子として構成されます。
<caching-rule>
要素は各キャッシング・ルールを定義し、構成ファイルにリストされている順序で検証されます。次の例に、adf-config.xml
でキャッシング・ルールを定義する構文を示します。
<adf-config xmlns="http://xmlns.oracle.com/adf/config"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/config"> <caching-rules xmlns="http://xmlns.oracle.com/adf/faces/rich/acf"> <caching-rule id="cache-rule1"> <cache>true|false</cache> <duration>3600</duration> <agent-caching>true|false</agent-caching> <agent-duration>4800</agent-duration> <compress>true|false</compress> <cache-key-pattern>....</cache-key-pattern> <search-key> <key>key1</key> <key>key2</key> </search-key> <varyBy> <vary-element> <vary-name><cookieName>|<headerName></vary-name> <vary-type>cookie|header</vary-type> </vary-element> </varyBy> </caching-rule> </caching-rules> </adf-faces-config> </adf-config>
各キャッシング・ルールは、<caching-rule>
要素に定義されます。オプションのid
属性を定義して、ルールの場所をサポートできます。表A-1に、アプリケーションのオブジェクトをキャッシュまたは圧縮するためのパラメータの定義に使用される<caching-rule>
子要素を説明します。
表A-1 AFCキャッシング・ルールの要素および属性
ルール要素の子 | 属性の説明および値 |
---|---|
|
オブジェクトをWebキャッシュにキャッシュする必要があるかどうかを指定します。値を |
|
オブジェクトがWebキャッシュにキャッシュされる期間を秒単位で定義します。デフォルト値は |
|
Webキャッシュがない場合にブラウザ・キャッシュを使用するには、 |
|
オブジェクトがブラウザ・キャッシュにキャッシュされる期間を秒単位で定義します。デフォルトは |
|
Webキャッシュにキャッシュされたオブジェクトを圧縮する必要があるかどうかを指定します。デフォルト値は |
|
ルールに一致するURLを決定します。リクエストURLのファイル拡張子またはパス接頭辞に、 |
|
キャッシュされたオブジェクトにタグ付けされている検索キーを定義します。各 |
|
Webキャッシュにキャッシュされたオブジェクトのバージョニングに使用されます。 各
Webキャッシュにより、リクエスト・パラメータが自動的にバージョニングされます。リクエスト・パラメータに基づき、オブジェクトの複数のバージョンがWebキャッシュに格納されます。 |
コンポーネント出力形式としてのFlashの構成
アプリケーションではデフォルトで、各コンポーネントに指定されている出力形式が使用されます。たとえば、ADFデータ視覚化コンポーネントを使用するアプリケーションは、アニメーションと対話効果をWebブラウザに表示するFlash出力形式を指定します。コンポーネントの出力形式がFlashで、AppleのiOSオペレーティング・システムのように、ユーザーのプラットフォームでFlash Playerがサポートされていない場合は、出力形式は使用可能な最善のフォールバックに自動的にダウングレードされます。
adf-config.xml
にflash-player-usage
コンテキスト・パラメータを設定することで、アプリケーション全体のFlashコンテンツの使用を構成できます。有効な設定は次のとおりです。
-
downgrade
: 出力形式がFlashで、Flash Playerを使用できない場合に、使用可能な最善のフォールバックにダウングレードすることを指定します。ユーザーは、Flash Playerのダウンロードを要求されません。 -
disabled
: アプリケーションでのFlashの使用を無効にするように指定します。クライアントでFlash Playerを使用できるかどうかに関係なく、すべてのコンポーネントがFlash以外でレンダリングされます。
次の例に、adf-config.xml
でFlashをアプリケーション全体で無効にするための構文を示します。
<adf-config xmlns="http://xmlns.oracle.com/adf/config"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/config"> <flash-player-usage>disabled</flash-player-usage> </adf-faces-config></adf-config>
コンテキスト・パラメータでは、EL式の値もサポートされています。このため、アプリケーションの異なる部分や、それぞれのユーザーでプリファレンスに基づいて、Flashを有効化するか無効化するかをアプリケーションで選択することが可能です。
コンテンツ配信ネットワークの使用
コンテンツ配信ネットワーク(CDN)では、ネットワークでのコンテンツへのアクセスがさらに効率的になることで、Webアプリケーションのパフォーマンスが向上します。アプリケーションでは、様々なCDN構成を使用してユーザー・エクスペリエンスを最適化できます。CDNを介してすべてのリクエストをルーティングする構成がよく利用されるようになっています。CDNは、クライアントとアプリケーションとの間のプロキシとして機能します。CDN固有の構成ツールを使用して、キャッシングや圧縮のルールを指定できます。
また、CDNからルーティングされるリクエストを制限する方法もあります。たとえば、予備リソース(イメージ、JavaScriptライブラリ、スタイルシートなど)のリクエストのみをCDNに誘導し、アプリケーション生成HTMLコンテンツのリクエストを直接処理できます。この場合、相対リソースURIを、CDNで処理されるホストを指し示す絶対URIに変換する必要があります。
たとえば、アプリケーション定義のイメージが、imagesというローカル・ディレクトリに保存されるとします。イメージを参照するコードは、次の例のようになります。
<af:image source="/images/logo.png" shortDesc="My Company Logo" id="i1"/>
次の例に示すように、イメージをCDNから取得するには、CDNのイメージ・ソースの絶対URIを明示的に指定する方法があります。
<af:image source="http://mycdn.com/images/logo.png" shortDesc="My Company Logo" id="i1"/>
この方法では、アプリケーションの多くの場所(すべてのイメージ参照の可能性がある)を更新する必要があるため、ページ間でCDNベースURIが重複してしまうマイナス面があります。これにより、CDN使用の有効/無効が切り替えられたり、CDNから別の極めて困難なCDNに切り替えられたりする可能性があります。
あるいは、次の例に示すように、リソース関連属性をELでバインドする方法もあります。
<af:image source="#{preferences.baseUri}/logo.png" shortDesc="My Company Logo" id="i1"/>
この方法では、CDNベースURIを1箇所(マネージドBeanなど)で指定できます。ただし、コンテンツ全体で正しいEL式を使用することは、アプリケーション開発者の負担になります。
ADF Facesでは、アプリケーション全体で(直接またはEL式を介して)CDNの場所の参照を繰り返すのではなく、リソースURIを変更する一元管理メカニズムが用意されています。このメカニズムを使用すると、1つ以上の接頭辞(ベース・リソースURI)をリソースに指定できます。これらのベース・リソースURIは、ネームスペースhttp://xmlns.oracle.com/adf/rewrite/config
の下にある、アプリケーションのadf-config.xml
ファイルで定義されます。
たとえば、次のコード・サンプルでは、イメージ・ディレクトリのすべてのpng
イメージが、http://mycdn.com
接頭辞を含めて書き換えられるように指定されています。
<adf-uri-rewrite-config xmlns="http://xmlns.oracle.com/adf/rewrite/config"> <resource-uris> <base-resource-uri uri="http://mycdn.com/"> <match-pattern> ^/.*/images/.*\.png$</match-pattern> </base-resource-uri> </resource-uris> </adf-uri-rewrite-config>
<match-pattern>
要素で指定された正規表現(^/.*/images/.*\.png$
)は、アプリケーションでレンダリングされるすべてのリソースURIに対してテストされます。一致するURIは、<base-resource-uri>
要素のURI属性で指定された接頭辞を含めるように変換されます。
この解決方法では、アプリケーション定義のリソースURIのみでなく、ADF Faces自体で使用されるURIの変更にも使用できるというメリットがあります。このタスクを簡略化するために、ADF Facesでは、正規表現のかわりに<match-alias>
要素で使用できるエイリアスの小規模セットを公開します。
たとえば、次の例の構成では、http://mycdn.com/
接頭辞を、ADF Facesコンポーネントで定義されるすべてのイメージに適用しています。
<adf-uri-rewrite-config xmlns="http://xmlns.oracle.com/adf/rewrite/config"> <resource-uris> <base-resource-uri uri="http://mycdn.com/"> <match-alias>af:images</match-alias> </base-resource-uri> </resource-uris> </adf-uri-rewrite-config>
<match-pattern>
要素で指定した正規表現とは異なり、<match-alias>
で使用されるエイリアスは、アプリケーション定義のリソースと一致しません。そのため、たとえば、前述の構成のaf:images
エイリアスの場合、ADF Facesコンポーネントで定義されるイメージ(ADF Facesに付属のデフォルトの背景イメージやアイコン)に接頭辞が付けられます。アプリケーションに明示的にバンドルされるイメージに接頭辞は付きません。
af:images
エイリアスの他に、ADF Facesスキン(スタイルシート)、JavaScriptライブラリおよびリソース・ドキュメントを対象とするエイリアスも提供されます。
CDNのURIを設定する手順:
スキン・スタイルシートおよびCDNに関する必知事項
af:skins
エイリアスを使用して、CDNを指し示すようにスキン・スタイルシートを書き換えることができますが(CDNはアプリケーション・サーバーにリクエストをプロキシするように構成される)、アプリケーションがクラスタまたはロードバランスされた環境(あるいはその両方)で実行している場合、問題が生じることがあります。
スキン・スタイルシートは、包含ページ・コンテンツをレンダリングしたサーバーに生成されて格納されます。CDNを介してスタイルシート・リクエストをルーティングすることで、サーバー・アフィニティが失われる可能性があります(たとえば、CDNが別のドメインで機能する場合、セッションCookieが失われます)。その結果、スタイルシート・リクエストは、リクエストしたスタイルシートをまだ生成していないサーバーにルーティングされます。このような場合、スタイルシート・リクエストは正常に完了しません。
ロードバランス環境またはクラスタ化環境(あるいはその両方)で起こる可能性のある失敗を回避するには、Cookieまたはセッション・アフィニティが失われる場合、スキン・スタイルシートURIを書き換えないでください。
リソース・ファイルのCDN用の準備に関する必知事項
スキン・スタイル・シートおよびJavaScriptパーティション・ファイルは実行時に動的に生成されます。これらのリソースをCDNのサーバーに移動する必要がある場合は、MyFaces TrinidadおよびADF Facesの両方をツールとして使用し、これらのファイルを事前生成して保存し、静的サイトにアップロードできます。
スキン・スタイル・シートを事前生成するには、Trinidad事前生成サービスを使用します。詳細は、http://myfaces.apache.org/trinidad/
のTrinidad開発者ガイドのスキニングに関する章を参照してください。
JavaScriptパーティション・ファイルを事前生成するには、ADF Faces JavaScriptライブラリ事前生成サービスを使用します。
ADF Faces JavaScriptライブラリ事前生成サービスを使用するには:
adf-settings.xmlでの構成
adf-settings.xmlファイルでは、UIプロジェクト構成が保持されます。このファイルは、ADFアプリケーションの.adf¥¥META-INFディレクトリに存在します。
adf-settings.xml
ファイルには、ADF Facesヘルプ・プロバイダやキャッシング/圧縮ルールなどのプロジェクトレベルおよびライブラリレベルの設定が含まれます。adf-settings.xml
ファイルの構成設定は固定で、アプリケーションのデプロイ時やデプロイ後に変更できません。アプリケーションに複数のadf-settings.xml
ファイルがあることがあります。ADF設定ファイルのユーザーは、これらの構成の内容をマージする必要があります。
adf-settings.xmlでのADF Facesの構成方法
アプリケーションの構成を行う前に、まず、adf-settings.xml
ファイルを作成する必要があります。その後、アプリケーションで使用するプロジェクトの機能の構成を追加できます。このファイルでの構成の詳細は、「adf-settings.xmlの要素について」を参照してください。
adf-settings.xmlを作成および編集する手順:
adf-settings.xmlの要素に関する必知事項
adf-settings.xml
ファイルでは次の構成要素がサポートされています。
ヘルプ・システム
次の要素を使用して、ヘルプ・システムで使用されるヘルプ・プロバイダを登録します。
-
<adf-faces-config>
: ADF Faces固有の構成をグループにまとめる親要素。 -
<prefix-characters>
: ヘルプ・プロバイダで、特定の接頭辞で始まるヘルプ・トピックIDにのみヘルプ・トピックを提供する場合、その接頭辞を指定します。接頭辞を使用しない場合は、省略できます。 -
<help-provider-class>
: ヘルプ・プロバイダ・クラス。 -
<custom-property>
および<property-value>
: ヘルプ・プロバイダ・クラスで受け入れるパラメータを定義するプロパティ要素。
次の例に、登録されたヘルプ・プロバイダの例を示します。このケースでは、アプリケーションのヘルプ・プロバイダは1つのみのため、接頭辞を含める必要がありません。
<adf-settings xmlns="http://xmlns.oracle.com/adf/settings"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings"> <help-provider prefix="MYAPP"> <help-provider-class> oracle.adfdemo.view.webapp.MyHelpProvider </help-provider-class> <property> <property-name>myCustomProperty</property-name> <value>someValue</value> </property> </help-provider> </adf-faces-config> </adf-settings>
キャッシング・ルール
アプリケーション固有のライブラリおよびJARには、ファイルのキャッシングまたは圧縮(あるいはその両方)を必要とする様々なリソースが含まれています。ライブラリまたはJARファイルが複数ある場合は、アプリケーションに、一致URLに基づいて様々なキャッシング・ルールを含む1つ以上のadf-setting.xml
ファイルが存在することがあります。キャッシング・ルールは、実行時に順序付けられたリストにマージされます。リソースに対するリクエストが複数のキャッシング・ルールに一致する場合は、リストでの順序が先のルールが優先されます。
ADF Faces JARファイルには、.js
、.css
およびイメージ・ファイル・タイプなどの共通リソース・タイプのデフォルトのキャッシング・ルールが含まれています。これらの固定ルールはadf-settings.xml
ファイルに定義されており、アプリケーションのデプロイ中やデプロイ後には変更できません。アプリケーション開発者は、adf-config.xml
ファイルにアプリケーション・キャッシング・ルールを定義でき、このルールはadf-settings.xml
に定義されるルールより優先されます。次の例は、ADF Faces JAR用のadf-settings.xml
ファイルを示しています。
<adf-settings> <adf-faces-settings> <caching-rules> <caching-rule id="cache css"> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.css</cache-key-pattern> </caching-rule> <caching-rule id="cache js"> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.js</cache-key-pattern> </caching-rule> <caching-rule id="cache png"> <compress>false</compress> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.png</cache-key-pattern> </caching-rule> <caching-rule id="cache jpg"> <compress>false</compress> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.jpg</cache-key-pattern> </caching-rule> <caching-rule id="cache jpeg"> <compress>false</compress> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.jpeg</cache-key-pattern> </caching-rule> <caching-rule id="cache gif"> <compress>false</compress> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.gif</cache-key-pattern> </caching-rule> <caching-rule id="cache html"> <compress>true</compress> <duration>99999</duration> <agent-caching>true</agent-caching> <cache-key-pattern>*.html</cache-key-pattern> </caching-rule> </caching-rules> </adf-faces-settings> </adf-settings>
trinidad-config.xmlでの設定
Apache MyFaces Trinidadは、ADF Facesコンポーネント・セットのベースを形成します。デフォルトでは、生成されたtrinidad-config.xmlファイルにはスキン・ファミリ名のみが含まれます。ただし、trinidad-config.xmlを使用して、アクセシビリティ設定、ロケール設定、状態管理などのデフォルト構成をオーバーライドできます。
ADF Facesコンポーネントを使用してJSFアプリケーションを作成する場合、ADF Facesの機能(スキン・ファミリ、ページ・アクセシビリティ・サポートのレベルなど)をtrinidad-config.xml
ファイルで構成します。faces-config.xml
同様、trinidad-config.xml
は、JSF式言語(EL)または静的値を使用して要素プロパティを定義できる単純なXML構造を持ちます。
注意:
システム・プロパティでorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION
を使用するように設定することで、高可用性テストのサポートを構成することもできます。「システム・プロパティの構成に関する必知事項」を参照してください。
trinidad-config.xmlでのADF Facesの機能の構成方法
JDeveloperで、ADF FacesコンポーネントをJSFページへ初めて追加すると、trinidad-config.xml
の基礎ファイルが/WEB-INF
ディレクトリに自動的に作成されます。次の例に初期trinidad-config.xml
ファイルを示します。
<?xml version="1.0" encoding="windows-1252"?> <trinidad-config xmlns="http://xmlns.oracle.com/trinidad/config"> <skin-family>alta</skin-family> <skin-version>v1</skin-version> </trinidad-config>
デフォルトでは、JDeveloperはADF Facesを使用するJSFアプリケーションのalta
スキン・ファミリを構成します。これをskyros
、simple
に変更することも、カスタム・スキンを使用することもできます。カスタム・スキンを使用する場合は、trinidad-skins.xml
構成ファイルを作成し、カスタム・スキンを使用するようtrinidad-config.xml
を変更します。カスタム・スキンの作成の詳細は、「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
通常、次のものをtrinidad-config.xml
ファイルで構成します。
-
ページ・アニメーション
-
ページ・アクセシビリティ・サポートのレベル
-
タイムゾーン
-
拡張デバッグ出力
-
Oracle Help for the Web (OHW)のURL
ファイルのアップロードに使用するカスタム・ファイル・アップロード・プロセッサの登録もできます。
JDeveloperでは、XMLエディタを使用してtrinidad-config.xml
を変更できます。
trinidad-config.xmlを編集する手順:
-
「アプリケーション」ウィンドウで、trinidad-config.xmlをダブルクリックします。
-
XMLエディタで、XMLエディタに直接コードを入力することも、構造ウィンドウを使用して要素を追加することもできます。構造ウィンドウを使用するには次のようにします。
-
構造ウィンドウで要素を右クリックして「前に挿入」または「後ろに挿入」を選択し、挿入する要素を選択します。
-
構造ウィンドウで新しく挿入された要素をダブルクリックします。「プロパティ」ウィンドウで、値を入力するかドロップダウン・リストから選択します。
ほとんどの場合、JSF EL式(
#{view.locale.language=='en' ? 'minimal' : 'alta'}
など)、あるいは静的値(たとえば、<debug-output>true</debug-output>
)を入れることができます。EL式は、リクエストごとに動的に再評価され、適切なオブジェクト(ブール・オブジェクトなど)を戻す必要があります。
-
使用できる構成要素のリストは、「trinidad-config.xmlの要素について」を参照してください。
trinidad-config.xml
ファイルの構成後、プログラムから、あるいはJSF EL式を使用してプロパティ値を取得できます。「RequestContext EL暗黙オブジェクトの使用」を参照してください。
trinidad-config.xmlの要素に関する必知事項
すべてのtrinidad-config.xml
ファイルは、http://myfaces.apache.org/trinidad/config
XMLネームスペースの<trinidad-config>
要素で始まる必要があります。<trinidad-config>
内の要素の順序は任意です。要素のインスタンスを複数含めることができます。
アニメーションの有効化
一部のADF Facesコンポーネントでは、レンダリング時にアニメーションが使用されます。たとえば、ツリーおよびツリー表でノードを展開および縮小する際、アニメーションが使用されます。次のコンポーネントでレンダリング時にアニメーションが使用されます。
-
ファセットを公開および非公開にする場合の表の詳細ファセット
-
ノードを展開および縮小する際のツリーおよびツリー表
-
メニュー
-
ポップアップ・セレクタ
-
ダイアログ
-
ノート・ウィンドウおよびメッセージの表示
使用されるアニメーションのタイプとタイミングは、アプリケーションのスキンの一部として構成されます。「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
animation-enabled
要素はtrue
またはfalse
に設定できます。また、true
またはfalse
に解決されるEL式を使用できます。デフォルトで、animation-enabled
はtrue
に設定されています。
パフォーマンスのヒント:
アニメーションを使用するとユーザー体験を改善できますが、アクションを実行したときのレスポンス時間が長くなる可能性があります。速さが重要である場合、このパラメータはfalse
に設定します。
スキン・ファミリ
「trinidad-config.xmlでのADF Facesの機能の構成方法」での説明のとおり、JDeveloperでは、ADF Facesを使用するJSFアプリケーションにalta
スキン・ファミリがデフォルトで使用されます。<skin-family>
の値をskyros
、simple
に変更することも、カスタム・スキン定義に変更することもできます。カスタム・スキンの作成および使用の詳細は、「スタイルおよびスキンを使用した外観のカスタマイズの概要」を参照してください。
次のコードに示すように、スキン・ファミリ値にEL式を使用できます。
<skin-family>#{prefs.proxy.skinFamily}</skin-family>
タイムゾーンおよび年
日付を処理して表示するためのタイムゾーンと、2桁のみの年を解析するための年オフセットを設定するには、次の要素を使用します。
-
<time-zone>
: 値が設定されていない場合、ADF Facesではデフォルトで、アプリケーション・サーバーで使用されているタイムゾーンが使用されます。必要な場合は、TimeZone
と評価されるEL式を使用できます。この値は、文字列をDate
に変換する際にorg.apache.myfaces.trinidad.converter.DateTimeConverter
で使用されます。 -
<two-digit-year-start>
: この値は、グレゴリオ暦の年で指定します。org.apache.myfaces.trinidad.converter.DateTimeConverter
で使用されて、2ケタの年のString
から日付を作成するための100年の範囲を決定します。結果のDate
はtwo-digit-year-start
とtwo-digit-year-start + 100
の間にあります。この要素は、値が設定されない場合、デフォルトで1950年に設定されます。必要な場合は、静的整数値またはInteger
オブジェクトに評価されるEL式を使用できます。たとえば、値が指定されていない場合は、100年の範囲はデフォルトで
[1950, 2050]
になり、日付01/01/10
は01/01/2010
に解決されます。
拡張デバッグ出力
デフォルトでは、<debug-output>
要素はfalse
です。<debug-output>
をtrue
に設定すると、ADF Facesでデバッグ出力が拡張されます。デバッグ出力に次の機能が追加されます。
-
自動インデント。
-
HTMLのブロックを処理したコンポーネントを識別するコメント。
-
対応していない要素、1つの要素内での同じ属性の繰り返しの使用またはその他の不適切なマークアップの問題の検出。
-
一般的なHTMLエラー(他の
<form>
タグ内の<form>
タグ、無効な場所に使用されている<tr>
タグや<td>
タグなど)の検出。
パフォーマンスのヒント:
デバッグにより、パフォーマンスが影響を受けます。本番環境ではこのパラメータをfalse
に設定します。
ページ・アクセシビリティ・レベル
<accessibility-mode>
を使用して、アプリケーションでのアクセシビリティ・サポートのレベルを定義します。サポートされる値は次のとおりです。
-
default
: 出力でアクセシビリティ機能がサポートされます。 -
inaccessible
: 出力サイズを最適化するため、アクセシビリティ固有の構成要素は削除されます。
言語読取り方向
ADF Facesのデフォルトのページ・レンダリング方向は、ブラウザで使用されている言語に基づきます。しかし、次のコードに示すように、Booleanオブジェクトに評価されるEL式、あるいはtrue
またはfalse
を使用して<right-to-left>
要素にデフォルト・ページ・レンダリング方向を明示的に設定できます。
<!-- 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>
通貨コードおよび数値の桁/小数点の区切り文字
通貨フィールドの書式設定に使用する通貨コードを指定する場合、および数値の桁と小数点に使用する区切り記号を定義する場合、次の要素を使用します。
-
<currency-code>
: コンバータで明示的に通貨コードが指定されていない通貨フィールドの書式設定に、org.apache.myfaces.trinidad.converter.NumberConverter
で使用されるデフォルトのISO 4217通貨コードを定義します。静的値またはString
オブジェクトと評価されるEL式を使用します。次に例を示します。<!-- Set the currency code to US dollars. --> <currency-code>USD</currency-code>
-
<number-grouping-separator>
: 数値の桁区切りに使用される文字(カンマなど)を定義します。ADF Facesでは現在のロケールから区切り文字が自動的に導出されますが、この要素に値を指定して、デフォルトをオーバーライドできます。静的値またはCharacter
オブジェクトと評価されるEL式を使用できます。設定されている場合、この値が、解析および書式設定時にorg.apache.myfaces.trinidad.converter.NumberConverter
クラスで使用されます。たとえば、アプリケーションでドイツ語が使用されている期間に数値グループ区切りを設定する場合は、次のコードを使用します。
<!-- 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>
-
<decimal-separator>
: 小数点に使用されるセパレータ(たとえば、ピリオドやカンマなど)を定義します。ADF Facesでは現在のロケールから区切り文字が自動的に導出されますが、この要素に値を指定して、デフォルトをオーバーライドできます。静的値またはCharacter
オブジェクトと評価されるEL式を使用できます。設定されている場合、この値が、解析および書式設定時にorg.apache.mtfaces.trinidad.converter.NumberConverter
クラスで使用されます。たとえば、アプリケーションでドイツ語が使用されている際に小数区切りをカンマに設定する場合は、次のコードを使用します。
<!-- Set the decimal separator to comma for German --> <!-- and period for all other languages --> <decimal-separator> #{view.locale.language=='de' ? ',' : '.'} </decimal-separator>
日付と数値ロケールの書式設定
ADF FacesおよびMyFaces Trinidadは、デフォルトでは、ローカライズされたテキストに使用されているのと同じロケール(デフォルトではブラウザのロケール)で、日付(週の最初の曜日も)と数値を書式設定します。ただし、その他のロケールで日付と数値を書式設定する場合は、IANA形式のコード(ja、fr-CAなど)を値とする<formatting-locale>
要素を使用できます。この要素の内容は、IANA文字列を指すEL式またはjava.util.Locale
オブジェクトです。
出力モード
ADF Facesで使用される出力モードを変更するには、次のいずれかの値を使用して<output-mode>
要素を設定します。
-
default
: デフォルト・ページ出力モード(通常、表示)。 -
printable
: 印刷可能ページに適した出力モード。 -
email
: ページのコンテンツを電子メールするのに適した出力モード。
アクティブなPageFlowScopeインスタンスの数
ADF Facesのデフォルトでは、アクティブなPageFlowScope
インスタンスの最大数が常に15に設定されます。この数を変更するには、<page-flow-scope-lifetime>
要素を使用します。その他の要素とは違い、静的な値を使用する必要があり、EL式はサポートされていません。
ファイルのアップロード
ファイルのアップロード・パラメータはweb.xml
に構成できますが、trinidad-config.xml
にファイルのアップロード・パラメータを構成すると、値の設定を変更するために実行時の検証が可能なEL式がサポートされるという利点があります。次の要素がサポートされています。
-
<uploaded-file-processor>
: このパラメータは、org.apache.myfaces.trinidad.webapp.UploadedFileProcessor
インスタンスを実装するクラスの名前にする必要がありますが、このインスタンスにより、個々のアップロード・ファイルが着信リクエストから取得される際に処理され、そのコンテンツを残りのリクエストで使用できるようになります。ほとんどの開発者とっては、デフォルトのUploadedFileProcessor
で十分ですが、大規模ファイルのアップロードをサポートする必要のあるアプリケーションでは、リクエスト中にApache Trinidadで一時記憶域を処理するかわりに、ファイルをただちに最終的な宛先に格納することでパフォーマンスが向上します。 -
<uploaded-file-max-memory>
: ディスクへのデータの書込みが開始されるまでに、ファイルのアップロード・プロセス中に使用されるメモリーの最大量を設定するために使用します。この設定は、web.xml
のorg.apache.myfaces.trinidad.UPLOAD_MAX_MEMORY
の設定を直接オーバーライドします。この値は、ハードコードすることも、Long
オブジェクトを戻すEL式を使用して明示的に構成することも可能です。 -
<uploaded-file-max-disk-space>
:EOFException
がスローされるまでに、アップロード・ファイルが使用できるディスク領域の最大量を設定するために使用します。この設定は、web.xml
のorg.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE
の設定を直接オーバーライドします。この値は、ハードコードすることも、Long
オブジェクトを戻すEL式を使用して明示的に構成することも可能です。 -
<uploaded-file-max-disk-space>
: アップロード・ファイルが格納されるデフォルトの場所を変更するために使用します。この設定は、web.xml
のorg.apache.myfaces.trinidad.UPLOAD_TEMP_DIR
の設定を直接オーバーライドします。この値は、ハードコードすることも、String
オブジェクトを戻すEL式を使用して明示的に構成することも可能です。
カスタム・ファイル・アップロード・プロセッサ
大半のアプリケーションでは、ADF Facesで用意されているデフォルトのUploadedFileProcessor
インスタンスを置き換える必要はありません。しかし、アプリケーションで非常に大きなファイルのアップロードをサポートする必要がある場合、またはファイルのアップロードに大きく依存する場合、デフォルト・プロセッサをカスタムUploadedFileProcessor
実装で置き換えることができます。
たとえば、ADF Facesでリクエスト時に一時格納を処理するかわりに、最終的な格納場所にファイルを即座に格納する実装を使用することにより、パフォーマンスを向上させることができます。デフォルト・プロセッサを置き換えるには、次のコードに示すように、<uploaded-file-processor>
要素を使用してカスタム実装を指定します。
<uploaded-file-processor> com.mycompany.faces.myUploadedFileProcessor </uploaded-file-processor>
クライアント側検証および変換
ADF Facesのバリデータとコンバータでは、サーバー側の検証および変換と同様に、クライアント側の検証および変換がサポートされます。ADF Facesのクライアント側のバリデータおよびコンバータは、サーバー側のバリデータおよびコンバータと同じように動作しますが、クライアントではJavaScriptが使用されます。
JavaScript対応のバリデータとコンバータは、フォームの送信時にクライアントで実行されるため、サーバーへのラウンドトリップなしにエラーが捕捉されます。
リッチ・クライアント版のADF Facesでは、<client-validation-disabled>
構成要素はサポートされていません。つまり、ADF Facesアプリケーションでは、クライアント側検証と変換を無効にできません。
システム・プロパティの構成に関する必知事項
Trinidad構成オプションの一部は、システム・プロパティによって設定されます。高可用性テストをサポートするには、org.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION
を使用します。システム・プロパティで、次のものを含む、大/小文字が区別されないカンマ区切りの一連の値を渡します。
-
NONE
: 状態のシリアライズ・チェックは実行されません(デフォルト)。 -
ALL
: 使用可能なすべてのテストを実行します(NONE
が優先されるため、NONEも指定されている場合は除きます)。 -
SESSION
: シリアライズ可能なオブジェクトのみがセッション・マップに配置されていることをテストするために、ExternalContextにより戻されたセッション・マップをラップし、オブジェクトがシリアライズ可能でない場合はCastCastExceptionをスローします。 -
TREE
: 状態保存中にコンポーネントの状態のシリアライズを積極的に試行し、シリアライズに失敗した場合は例外をスローします。 -
COMPONENT
: 問題のあるコンポーネント(遅い)を識別するために、状態保存中に、各コンポーネント・サブツリーの状態のシリアライズを積極的に試行します。 -
PROPERTY
: 問題のあるプロパティ(遅い)を識別するために、状態保存中に、各プロパティ値のシリアライズを積極的に試行します。
たとえば、セッションとJSFの状態がシリアライズ可能な場合は、システム・プロパティを次のように設定することで、テスターが検証を開始します。
-Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=session,tree
JSFの状態のシリアライズが検出された場合は、次のように、コンポーネントとプロパティのフラグが有効化された状態でテストが再実行されます。
-Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=all
trinidad-skins.xmlでの構成
既存のADF Facesアプリケーションでは、アプリケーションが作成されたときに使用するように構成されたスキンが使用されます。trinidad-config.xmlファイルを使用すると、ADF Facesにより提供されたスキンの1つを拡張して、独自のカスタム・スキンを作成できます。
JDeveloperでは、ADF Facesコンポーネントを使用してJSFページを作成する場合、alta
スキン・ファミリがデフォルトで使用されます。「trinidad-config.xmlでのADF Facesの機能の構成方法」での説明のとおり、スキン・ファミリはtrinidad-config.xml
ファイルで構成されます。アプリケーションにカスタム・スキンを使用する場合は、カスタム・スキンのアプリケーションでの登録に使用されるtrinidad-skins.xml
ファイルを作成します。
カスタム・スキンの作成の詳細は、「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
RequestContext EL暗黙オブジェクトの使用
trinidad-config.xmlファイルで定義されているプロパティはすべて、org.apache.myfaces.trinidad.context.RequestContextを使用してプログラム的に取得できます。また、RequestContextオブジェクトもjava.util.Mapタイプのいくつかのプロパティを公開し、これはユーザーがEL式を書くときに役立ちます。
ADF Facesでは、EL暗黙オブジェクトrequestContext
を使用して、trinidad-config.xml
ファイルで定義されている構成プロパティから値を取得できます。requestContext
暗黙オブジェクトはorg.apache.myfaces.trinidad.context.RequestContext
クラスのインスタンスで、java.util.Map
タイプのいくつかのプロパティを公開して、JSF EL式によるコンテキスト・オブジェクト・プロパティ値の取得を可能にします。
たとえば、EL式#{requestContext}
はRequestContext
オブジェクト自体を返し、EL式#{requestContext.skinFamily}
は、<skin-family>
要素の値をtrinidad-config.xml
ファイルから返します。
EL式を使用して、コンポーネント属性値をrequestContext
暗黙オブジェクトのプロパティにバインドすることもできます。たとえば、次のEL式では、<currency-code>
プロパティがJSF ConvertNumber
コンポーネントのcurrencyCode
属性値にバインドされています。
<af:outputText> <f:convertNumber currencyCode="#{requestContext.currencyCode}"/> </af:outputText>
次に示す、requestContext
暗黙的オブジェクト・プロパティを使用できます。
-
requestContext.accessibilityMode
:<accessibility-mode>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.agent
: リクエストを行っているクライアント・エージェントを示し、レンダリングされた出力を表示するオブジェクトを返します。agent
オブジェクトのプロパティは次のとおりです。-
agentName
: エージェント・ブラウザの正規の名前(gecko
、ie
など)。 -
agentVersion
: エージェント・ブラウザのバージョン番号。 -
capabilities
: 現在のクライアント・リクエストに対する機能名(高さ、幅など)とその値をマップします。 -
hardwareMakeModel
: ハードウェア・メーカーとモデルの正規の名前(nokia6600
、sonyericssonP900
など)。 -
platformName
: プラットフォームの正規の名前(ppc
、windows
、mac
など)。 -
platformVersion
: プラットフォームのバージョン番号。 -
type
: エージェント・タイプ(desktop
、pda
、phone
など)。
-
-
requestContext.clientValidationDisabled
:<client-validation-disabled>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.colorPalette
: カラー・パレット名をキーとし、カラー・パレットを結果として返すMapを返します。各カラー・パレットは、java.awt.Color
オブジェクトの配列です。4つの標準カラー・パレットへのアクセスを提供します。-
web216
: 216のWebセーフ・カラー -
default49
: 全透明のエントリを1つ含む49色のパレット -
opaque40
: 全透明のエントリを含まない49色のパレット -
default80
: 全透明のエントリを1つ含む80色のパレット
-
-
requestContext.currencyCode
:<currency-code>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.debugOutput
:<debug-output>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.decimalSeparator
:<decimal-separator>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.formatter
: 再帰的Map
構造を使用してメッセージを書式設定するMap
オブジェクトを返します。最初のキーはメッセージの書式設定マスクで、2番目のキーはメッセージの最初のパラメータです。 -
requestContext.helpSystem
: ヘルプ・システム・プロパティをキーとして受け入れ、URLを結果として返すMap
オブジェクトを返します。たとえば、EL式#{requestContext.helpSystem['frontPage']}
は、ヘルプ・システムのフロント・ページへのURLを返します。trinidad-config.xml
ファイルに<oracle-help-servlet-url>
要素を構成してあることを前提とします。 -
requestContext.helpTopic
: トピック名をキーとして受け入れ、URLを結果として返すMap
オブジェクトを返します。たとえば、EL式#{requestContext.helpTopic['foo']}
は、ヘルプ・トピックfooへのURLを返します。trinidad-config.xml
ファイルに<oracle-help-servlet-url>
要素を構成してあることを前提とします。 -
requestContext.numberGroupingSeparator
:<number-grouping-separator>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.oracleHelpServletUrl
:<oracle-help-servlet-url>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.outputMode
:<output-mode>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.pageFlowScope
:pageFlowScope
オブジェクトでのオブジェクトのマップを返します。 -
requestContext.rightToLeft
:<right-to-left>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.skinFamily
:<skin-family>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.timeZone
:<time-zone>
要素の値をtrinidad-config.xml
ファイルから返します。 -
requestContext.twoDigitYearStart
:<two-digit-year-start>
要素の値をtrinidad-config.xml
ファイルから返します。
プロパティの完全なリストについては、Oracle ADF Faces Java APIリファレンスのorg.apache.myfaces.trinidad.context.RequestContext
を参照してください。
注意:
リクエストごとに、org.apache.myfaces.trinidad.context.RequestContext
クラスのインスタンスが1つ存在します。RequestContext
クラスは、JSF FacesContext
クラスを拡張しません。
構成プロパティをプログラムで取得するには、次のコードに示すように、まず、静的getCurrentInstance()
メソッドをコールしてRequestContext
オブジェクトのインスタンスを取得し、目的のプロパティを取得するメソッドをコールします。
RequestContext context = RequestContext.getCurrentInstance(); // Get the time-zone property TimeZone zone = context.getTimeZone(); // Get the right-to-left property if (context.isRightToLeft()) { . . . }
パフォーマンス・チューニング
パフォーマンス・チューニングとは、ADF Facesアプリケーションがパフォーマンス上の目的を満たすまで、構成上のボトルネックを特定して体系的に除去するプロセスです。
特定の構成オプションに関連するパフォーマンスの詳細は、『パフォーマンスのチューニング』で、「Oracleアプリケーション開発フレームワークのパフォーマンスのチューニング」を参照してください。