Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11gリリース1 (11.1.1.7.0) B52029-07 |
|
前 |
次 |
この章では、印刷やメール送信に適したモードでページを表示する方法について説明します。トピックにはshowPrintablePageBehavior
タグを使用してページ・コンテンツを印刷する方法、リクエスト・パラメータ,org.apache.myfaces.trinidad.agent.email=true
により電子メール可能なページを作成する方法、およびリクエスト・パラメータorg.apache.myfaces.trinidad.outputMode=attachment
によりアタッチメンント・ページを作成する方法が含まれています。
この章では、次の項目について説明します。
ADF Facesでは、印刷またはメール送信用の簡単なモードでページを出力できます。電子メールへの添付用にリッチな対話型ページの出力も可能です。たとえば、Webブラウザにレンダリングされるようにページを正確に印刷するのではなく、ページ(またはページの一部)を印刷できるようにする場合、印刷するページに不要なアイテム(スクロール・バーやボタンなど)を削除できます。ページをメール送信する場合、メール・クライアントで正しく表示できるようにページを簡略化する必要があります。ページが電子メールに添付され、メール・クライアントではなくブラウザに表示される場合は、ページを簡略化する必要はありません。
注意: デフォルトでは、ADF Facesフレームワークで、検索エンジンによるアプリケーションのクロールが検出されると、メール可能なページの形式と同様にクローラの簡単な形式でページが出力されます。Webクローラの特殊なコンテンツを生成する場合、EL対応 <c:if test="#{requestContext.agent.type == 'webcrawler'}"> <af:goLink text="This Link is rendered only for web crawlers" destination="http://www.newPage.com"/> </c:if> 詳細は、『Trinidad Javadoc』を参照してください。 |
印刷可能なページを表示する場合、ADF Facesでは、showPrintablePageBehavior
タグが提供されます。このタグは、コマンド・コンポーネントと一緒に使用される場合、ブラウザに簡略化されたバージョンのページを表示してから印刷できます。
メールに対応する場合、ADF Facesでは、Microsoft Outlook 2007、Mozilla Thunderbird 10.0.5、あるいはGmail電子メール・クライアントのいずれかの表示に適したページへの変換に使用できるAPIが提供されます。アタッチメント・モードでは、ADF Facesでは、電子メール・アタッチメントから起動された場合、任意のブラウザでの表示に適したページへの変換に使用できるAPIが提供されます。
ヒント: 現在の出力モード(
<af:activeImage source="/images/stockChart.gif"
rendered="#{adfFacesContext.outputMode != "email"}"/>
現在のモードは、 |
showPrintablePageBehavior
タグを、コマンド・コンポーネントの子として配置します。クリックすると、フレームワークは、printableBehavior
タグの親のコンポーネントで開始するコンポーネント・ツリーをたどり、panelSplitter
またはpanelAccordion
、あるいはツリーのルート(どちらの場合も最初に来る)に達するまで移動します。ツリーはその場所からレンダリングされます。さらに、印刷バージョンで不要なコンポーネント(ボタン、タブ、スクロール・バーなど)は省略されます。
たとえば、ファイル・エクスプローラ・アプリケーションでは、図35-1に示すように、表を含むpanelCollection
コンポーネントのツールバーの内部にcommandButton
コンポーネントを配置できます。
ボタンをクリックすると、図35-2に示すように、ページは簡略化された形式で新しいブラウザ・ウィンドウ(ブラウザによってはタブ)に表示されます。
印刷の場合、表の内容のみが表示されます。タブ、ツールバー、スクロール・バーなどの余分なコンポーネントはすべてレンダリングされません。
ボタンをクリックすると、action
イベントは取り消されます。かわりに、印刷可能なバージョンのページに関してサーバーへのリクエストが行われます。
showPrintablePageBehavior
タグをコマンド・コンポーネントの子として使用できます。
showPrintablePageBehaviorタグを使用する手順:
レイアウト・コンポーネントのいずれかで、印刷するコンテンツを含むファセットにコマンド・コンポーネントを追加します。手順は、18.2.1項「コマンド・ボタンおよびコマンド・リンクの使用方法」を参照してください。
注意: ユーザーがページ全体を印刷できるようにレイアウト・コンポーネントの外に |
コンポーネント・パレットの「操作」パネルで、「印刷可能なページの表示動作」をドラッグし、コマンド・コンポーネントの子としてドロップします。
アプリケーションのページをメール送信する必要がある場合があります。たとえば、Web上で作成された注文書は、多くの場合、セッションの最後に購入者に対してメールで送付されます。しかし、電子メール・クライアントでWebブラウザへのレンダリングに使用される外部スタイルシートがサポートされていないために、正しくレンダリングされないという理由で、同じページを電子メールで送信できません。
ADF Facesフレームワークでは、JSFページの自動変換が行われるため、Microsoft Outlook 2007、Mozilla Thunderbird 10.0.5、およびGmailメール・クライアントで正しくレンダリングされます。
すべてのコンポーネントを、メール・クライアントでレンダリングできるわけではありません。次のコンポーネントは変換できるため、メール・クライアントで適切にレンダリングされます。
document
panelHeader
panelFormLayout
panelGroupLayout
panelList
spacer
showDetailHeader
inputText
(readOnly
としてレンダリング)
inputComboBoxListOfValues
(readOnly
としてレンダリング)
inputNumberSlider
(readOnly
としてレンダリング)
inputNumberSpinbox
(readOnly
としてレンダリング)
inputRangeSlider
(readOnly
としてレンダリング)
outputText
selectOneChoice
(readOnly
としてレンダリング)
panelLabelAndMessage
image
table
column
goLink
(text
としてレンダリング)
メール・クライアントでレンダリングするページを変換するようにADF Facesフレームワークに通知するには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。
org.apache.myfaces.trinidad.agent.email=true
たとえば、図35-3に示すように、注文書を表示するページがあるとします。
上部にあるメール可能なページリンクをクリックすると、actionListener
メソッドまたは別のサービスで、現在のURLにorg.apache.myfaces.trinidad.agent.email=true
を追加してページをメール送信します。図35-4に、メール・クライアントに表示されるページを示します。
ヒント: メールをオフラインで表示できるようにするには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。 org.apache.myfaces.trinidad.agent.email=true&oracle.adf.view.rich.render.emailContentType=multipart/related フレームワークは、HTMLをMIME(multipart/related)に変換し、メールがオフラインで表示されるようにイメージを埋め込みます。 |
ページの開発を完了する前に、メール・クライアントでのページのレンダリング方法をテストできます。テストは、goButton
コンポーネントを使用して簡単に実行できます。
メール可能なページのテスト手順:
コンポーネント・パレットの「共通コンポーネント」パネルで、ページのいずれかの場所に実行ボタンをドラッグ・アンド・ドロップします。
プロパティ・インスペクタで、「共通」セクションを開いて、ページの名前になる宛先と、org.apache.myfaces.trinidad.agent.email=trueを設定します。
たとえば、ページの名前がmyPage
の場合、宛先属性の値は次のようにします。
myPage.jspx?org.apache.myfaces.trinidad.agent.email=true
ページを右クリックし、「実行」を選択して、デフォルトのブラウザでページを実行します。
アプリケーションを初めて実行し、新しいドメインを統合WebLogic Serverで開始する際に、「デフォルト・ドメインの構成」ダイアログが表示されます。ダイアログを使用して新しいドメインの管理者パスワードを定義します。入力するパスワードは8文字以上で、数字が含まれている必要があります。
ブラウザにページが表示されたら、ページに追加したgoButton
をクリックします。これにより、ブラウザにページが再度表示されますが、そのページは、メール・クライアントで処理できるページに変換されます。
ブラウザで、ページのソースを表示します。たとえば、Mozilla Firefoxでは、「表示」→「ページのソース」を選択します。ソース全体を選択してコピーします。
メール・クライアントで新規メッセージを作成します。ページ・ソースをメッセージに貼り付けて自分自身に送信します。
ヒント: HTMLコードを貼り付けているため、おそらく挿入コマンドを使用してメール本文にHTMLを挿入する必要があります。たとえば、Thunderbirdでは、「Insert」→「HTML」を選択します。 |
必要に応じて、エージェントを使用して、メール・バージョンのページ専用のスキンを作成します。次の例では、メールに表示された表の上の枠を指定する方法を示します。
af|table { border: 1px solid #636661; } @agent email { af|table {border:none} } af|table::column-resize-indicator { border-right: 2px dashed #979991; }
スキンの作成の詳細は、第20章「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
ADF Facesフレームワークがレンダー・レスポンス・フェーズでリクエスト・パラメータorg.apache.myfaces.trinidad.agent.email=true
を受信する場合、関連するフェーズ・リスナーは、フレームワークに次の操作の実行を通知する内部フラグを設定します。
HTMLからJavaScriptを削除します。
ページにすべてのCSSを追加します。ただし、ページに含まれる内容がコンポーネントの場合のみです。
HTMLからCSSリンクを削除します。
すべての相対リンクを絶対リンクに変換します。
イメージを絶対URLでレンダリングします。
また、パラメータoracle.adf.view.rich.render.emailContentType=multipart/related
を追加する場合、フレームワークは、HTMLからMIME(multipart/related)に変換し、メールがオフラインで表示されるようにイメージを埋め込みます。リクエスト・パラメータは全体で次のようになります。
org.apache.myfaces.trinidad.agent.email=true&oracle.adf.view.rich.render.emailContentType=multipart/related
アタッチメント・モードにより、アタッチメントの作業に必要なリソースのダウンロードのために1回限りのサーバー接続を要するページのメールへの添付ができます。メールを受け取ったユーザーがアタッチメント・ページを開くと、オフラインでの作業時に必要な対話性を提供するため、ブラウザはそのページに参照された補助リソース (スタイルシート、イメージ、およびJavaScriptライブラリ) をリクエストします。
補助リソース (スタイルシート、イメージ、およびJavaScriptライブラリ) がアプリケーション・サーバーとは別にホストされている場合は、アタッチメント・シートのリソースURlがそのリソースをホストしているサーバーを指すように書き換えられていることを確認する必要があります。これを行うには、URIの書き換えルールを定義する必要があります。ADF Facesには、リソースURIを変更し、1つ以上の接頭辞、またはベース・リソースURIをリソースに指定することを可能とする、一元的なメカニズムがあります。これらのベース・リソースURIは、名前空間http://xmlns.oracle.com/adf/rewrite/config
の下の、アプリケーションのadf-config.xml
ファイルの中にあり、リソースをホストしているサーバーを指すようにするためのURIの書換えを可能にしています。URI書換えの詳細は、A.4.4項「コンテンツ配信ネットワークの使用」を参照してください。
ほとんどのコンポーネントは、アタッチメント・モードでの何らかのサポートがありますが、アタッチメント・モードでは最適な動作をしない可能性のあるコンポーネントや、サポートされないコンポーネントが少数あります。たとえば、階層ビューアはアタッチメント・モードがサポートされないことを示すメッセージを表示します。また、カレンダ表示の切り替えなど、アタッチメント・モードのすべての機能はサポートしないコンポーネントもあります。サポートされるコンポーネントと制約の詳細は、タグのドキュメントを参照してください。
メール・アタッチメントで使用するためページを変換するようにADF Facesフレームワークに通知するには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。
org.apache.myfaces.trinidad.outputMode=attachment
たとえば、図35-5に示すように、アクティブなレポートを表示するページがあるとします。
actionListener
メソッドや他のサービスを使用して、リクエスト・パラメータ org.apache.myfaces.trinidad.outputMode=attachment
を現在のURLに追加します。これはアタッチメント・ページをレンダリングし、受信者に送信するためのメールへの添付を可能にします。このページを保存してメールに添付するメカニズムはADFにより提供されず、ユーザーによる実装が必要です。アタッチメント・ページはそのリソースURlが書き換えられ、そのページに参照される補助的リソース(スタイルシート、イメージ、およびJavaScriptライブラリ)をホストしているサーバーを指していることを確認してください。URI書換えの使用についての情報は、A.4.4項「コンテンツ配信ネットワークの使用」を参照し、Oracleホスト・リソースでのURI書換え方法の例については、35.4.2項「Oracleホスト・リソースの使い方」を参照してください。
注意: アタッチメント・ページで使用されるリソースは、アタッチメント・ページが適切に表示されるよう、一般にアクセス可能な位置で利用可能となっていることを確認します。Oracleホスト・リソースを使用する場合、35.4.2項「Oracleホスト・リソースの使い方」を参照してください。 |
図35-6は、Webブラウザで開いた時のメールのアタッチメント・ページを示します。
注意: DVTグラフを含むアタッチメント・ページが、IE7やIE8などの非HTML 5ブラウザで開かれる場合、PNGイメージのレンダリングのためにサーブレットへのアクセスが必要です。このサーブレットが利用できない場合は、グラフはレンダリングされません。 |
ユーザーにとり便利なように、Oracleはアタッチメント・モードのサポート提供に必要な補助リソースをホストします。このリソースには、JavaScriptライブラリ、CSS、および静的なイメージが含まれます。http://download.oracle.com/otn-pub/jdeveloper/faces/
version
にあるOracleの一般向けサーバーにホストされているコンテンツが使用できます。
注意: Oracleは、その一般向けのサーバーやその中のコンテンツが、どの時点でもアクセス可能であることや利用可能であることを、保証したり、いかなる表明の対象とするものではありません。OracleのサーバーにあるOracle ADFリソースは、Oracleアプリケーション開発フレームワークの使用のためにユーザーが合意したオリジナルのライセンスが適用されます。 |
Oracleがホストするリソースを使用する場合は、ユーザーのアプリケーションがdownload.oracle.com
上にあるベース・リソースURIを指定するように構成し、すべてのリソースURIが書き換えられてURIの接頭辞を含むようにする必要があります。URI書換えの使用の詳細は、A.4.4項「コンテンツ配信ネットワークの使用」を参照してください。
Oracleホスト・リソースを使用するには:
adf-config.xml
ファイルを作成または開いて下さい(詳細は、A.4項「adf-config.xmlにおける構成」を参照)。
A.4.4項「CDN URIリライト要素」に記述されている要素を使用して、置換URIを定義するためのリライト・ルールを作成します。
次の形式を使用して、download.oracle.com
上の正しい場所用の接頭辞を指定します。
http://download.oracle.com/otn-pub/jdeveloper/faces/
version
アタッチメント・ページ(JavaScript、CSS、およびイメージ)で使用されるすべてのリソースとの一致のため、<match-pattern>
要素を使用して正規表現を指定します。
例35-1は、download.oracle.com
を補助リソースのために使用する、アプリケーションの構成方法を示します。サンプル・コードは、すべてのADFおよびDVTが生成したJavaScriptライブラリ、イメージ、およびスタイルシートは、次の接頭辞を含むように書き換えられることを指定しています。
http://download.oracle.com/otn-pub/jdeveloper/faces/11.1.1.7.0/
例 35-1 Oracleホスト・リソースのためのURIリライト
<adf-uri-rewrite-config xmlns="http://xmlns.oracle.com/adf/rewrite/config"> <resource-uris> <base-resource-uri uri="http://download.oracle.com/otn-pub/jdeveloper/faces/11.1.1.7.0/"> <match-alias>af:documents</match-alias> <match-alias>af:coreScripts</match-alias> <match-alias>af:images</match-alias> <match-alias>af:skins</match-alias> <!-- Non core ADF and Trinidad JS Libraries --> <match-pattern>^.*/afr/partition.*\.js$</match-pattern> <!-- rcf js files --> <match-pattern>^.*/adf/jsLibs/.*\.js$</match-pattern> <!-- trinidad js --> <!-- Locale Translations JS Files --> <!-- rcf js locale files --> <match-pattern>^.*/afr/.*\.js[?].*$</match-pattern> <!-- trinidad js locale --> <match-pattern>^.*/adf/jsLibs/resources/.*\.js[?].*$</match-pattern> <!-- dvt images --> <match-pattern>^/[^/]+/(bi)/.*\.(png|gif|jpg|jpeg|cur|iso)$</match-pattern> </base-resource-uri> </resource-uris> </adf-uri-rewrite-config>
ADF Facesフレームワークがパラメータorg.apache.myfaces.trinidad.outputMode=attachment
でリクエストを受け取ると、フレームワークはレスポンスのレンダリング・フェーズで以下を行います。
ブラウザ・エージェントをgenericDesktop
にセットします(これは、アタッチメント・ページを生成するようにリクエストしたエージェントを使用していません)。
リッチ・ページがオフラインで機能するのに必要な、すべてのJavaScriptリソースを含みます。
genericDesktop
エージェントのためにCSSを生成し、レンダリングされたページのためこのリソースへのリンクを含みます。
リソースにおけるすべての相対リンクを絶対リンクに変換し、CSSコンテンツを含みます。
絶対URLでイメージをレンダリングします。アタッチメント・ページが開かれると、ブラウザ・クライアントによりダウンロードされなかったどのイメージも、フレームワークによりプリロードされます。