Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11gリリース1(11.1.1.9.0) B52029-12 |
|
![]() 前 |
![]() 次 |
この章では、印刷や電子メールに適したモードでページをどのように表示できるかについて説明します。トピックには、showPrintablePageBehavior
タグを使用してページを印刷する方法および要求パラメータorg.apache.myfaces.trinidad.agent.email=true
を使用して電子メール送信可能なページを作成する方法が含まれます。
この章では、次の項目について説明します。
ADF Facesでは、ページを印刷または電子メール用に簡略化されたモードで出力できます。たとえば、ユーザーがページ(またはページの一部)を印刷できるようにし、ただしWebブラウザでレンダリングされているとおりにページを印刷するのではなく、スクロール・バーやボタンなど、印刷ページに必要ないアイテムを削除することができます。ページが電子メールで送信される場合は、電子メール・クライアントが正しく表示できるようにページを簡略化する必要があります。
注意: デフォルトでは、ADF Facesフレームワークによりアプリケーションが検索エンジンによってクロール中であると検出されると、クローラ用に電子メール用のページに似た簡略化された形式でページが出力されます。Web Crawlerの専用コンテンツを生成する場合、ELでアクセス可能なAgent インタフェースを使用して、サイトをクロール中であるエージェントを検出し、次のように指定したリンクへエージェンを転送します。
<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が提供されます。
ヒント: 現行の出力モード(email またはprintable )には、AdfFacesContext から入ることができます。このコンテキストはELでアクセスできるため、ELを使用してJSPページの出力モードにバインドできます。たとえば、次の式を使用して、現行モードがemail でない場合にのみ、図がレンダリングされるようにします。
<af:activeImage source="/images/stockChart.gif"
rendered="#{adfFacesContext.outputMode != "email"}"/>
現行モードは |
showPrintablePageBehavior
タグを子としてコマンド・コンポーネントに配置します。クリックすると、フレームワークは、printableBehavior
タグに対する親のコンポーネントから始まるコンポーネント・ツリーを、panelSplitter
、panelAccordion
またはpopup
コンポーネント、あるいはツリーのルート(いずれか早い方)に到達するまで上っていきます。ツリーはそこからレンダリングされます。さらに、印刷ページで不要なコンポーネント(ボタン、スクロール・バーなど)は省略されます。
たとえば、ファイル・エクスプローラ・アプリケーションでは、図36-1
に示すように、表を含むpanelCollection
コンポーネントのツールバーの内部にcommandButtonコンポーネントを配置できます。
ユーザーがボタンをクリックすると、ページが新規のウィンドウ(ブラウザによってはタブ)に、図36-2のように簡略化された形で表示されます。
表の内容のみが印刷用に表示されます。ツールバー、ボタン、スクロール・バーなどの不要なコンポーネントはすべてレンダリングされません。
ボタンをクリックすると、action
イベントは取り消されます。かわりに、サーバーに対して、ページの印刷可能なバージョンが要求されます。
showPrintablePageBehavior
タグをコマンド・コンポーネントの子として使用できます。
showPrintablePageBehaviorタグを使用する手順:
レイアウト・コンポーネントのいずれかで、印刷するコンテンツを含むファセットにコマンド・コンポーネントを追加します。手順は、18.2.1項「コマンド・ボタンおよびコマンド・リンクの使用方法」を参照してください。
注意: ユーザーがページ全体を印刷できるようにレイアウト・コンポーネントの外にshowPrintablePageBehavior コンポーネントを挿入できますが、印刷結果がレイアウトとおおまかにしか一致せず、一部のコンテンツが表示されない場合があります。そのため、ユーザーがファセットの全コンテンツを印刷できるようにするには、ユーザーが通常印刷するコンテンツを含むファセットにコマンド・コンポーネントとshowPrintablePageBehavior コンポーネントを配置することが重要です。複数のファセットで印刷をサポートする必要がある場合は、各ファセットにコマンド・コンポーネントを1つとshowPrintablePageBehavior タグを挿入します。すべてのコンテンツを印刷するには、ユーザーは一度に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
としてレンダリング)
デフォルトでは、電子メール対応ページは、内部のスタイルシートを使用するのではなく、関連するHTML要素のstyle属性に直接インラインで記述するスタイルで表示されます。web.xml
のパラメータoracle.adf.view.DEFAULT_EMAIL_MODE
をinternal
またはinline
のいずれかに設定し、この動作を構成できます。
メール・クライアントでレンダリングするページを変換するようにADF Facesフレームワークに通知するには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。
org.apache.myfaces.trinidad.agent.email=true
たとえば、図36-3に示すように、注文書を表示するページがあるとします。
ユーザーが上部の「電子メール可能なページ」リンクをクリックすると、actionListener
メソッドまたは別のサービスによりorg.apache.myfaces.trinidad.agent.email=true
が現行のURLに追加され、ページが電子メールで送信されます。図36-4に、メール・クライアントに表示されるページを示します。
注意: デフォルトでは、フレームワークにより、内部のスタイルシートが作成されるのではなく、各HTML要素にスタイルの情報がインライン化されます。web.xml のパラメータoracle.adf.view.DEFAULT_EMAIL_MODE をinternal またはinline のいずれかに設定し、この動作を構成できます。リクエスト・パラメータをorg.apache.myfaces.trinidad.agent.email=internal またはorg.apache.myfaces.trinidad.agent.email=inline に設定することで、internal またはinline のいずれかのモードを強制してリクエストをレンダリングすることもできます。 |
ヒント: メールをオフラインで表示できるようにするには、次のリクエスト・パラメータを、メール送信するページの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を持つイメージをレンダリングします。
内部のスタイルシートを作成するのではなく、各HTML要素にスタイルの情報をインライン化します。
また、パラメータ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