Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11gリリース1 (11.1.1.7.0) B52029-11 |
|
前 |
次 |
この章では、印刷や電子メールに適したモードでページをどのように表示できるかについて説明します。トピックには、showPrintablePageBehavior
タグを使用してページを印刷する方法および要求パラメータorg.apache.myfaces.trinidad.agent.email=true
を使用して電子メール送信可能なページを作成する方法が含まれます。
この章では、次の項目について説明します。
ADF Facesでは、ページを印刷または電子メール用に簡略化されたモードで出力できます。たとえば、ユーザーがページ(またはページの一部)を印刷できるようにし、ただしWebブラウザでレンダリングされているとおりにページを印刷するのではなく、スクロール・バーやボタンなど、印刷ページに必要ないアイテムを削除することができます。ページが電子メールで送信される場合は、電子メール・クライアントが正しく表示できるようにページを簡略化する必要があります。
注意: デフォルトでは、ADF Facesフレームワークによりアプリケーションが検索エンジンによってクロール中であると検出されると、クローラ用に電子メール用のページに似た簡略化された形式でページが出力されます。Web Crawlerの専用コンテンツを生成する場合、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が提供されます。
ヒント: 現行の出力モード(
<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
メソッドまたは別のサービスによりorg.apache.myfaces.trinidad.agent.email=true
が現行のURLに追加され、ページが電子メールで送信されます。図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では、「挿入」→「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