Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11g リリース1 (11.1.1.6.0) B52029-06 |
|
前 |
次 |
この章では、印刷やメール送信に適したモードでページを表示する方法について説明します。
この章では、次の項目について説明します。
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 2.0のいずれかの表示に適したページへの変換に使用できるAPIが提供されます。
ヒント: 現在の出力モード(
<af:activeImage source="/images/stockChart.gif"
rendered="#{adfFacesContext.outputMode != "email"}"/>
現在のモードは、 |
showPrintablePageBehavior
タグを、コマンド・コンポーネントの子として配置します。クリックすると、フレームワークは、printableBehavior
タグの親のコンポーネントで開始するコンポーネント・ツリーをたどり、panelSplitter
またはpanelAccordion
、あるいはツリーのルート(どちらの場合も最初に来る)に達するまで移動します。ツリーはその場所からレンダリングされます。さらに、印刷バージョンで不要なコンポーネント(ボタン、タブ、スクロール・バーなど)は省略されます。
たとえば、ファイル・エクスプローラ・アプリケーションでは、図33-1に示すように、表を含むpanelCollection
コンポーネントのツールバーの内部にcommandButton
コンポーネントを配置できます。
ボタンをクリックすると、図33-2に示すように、ページは簡略化された形式で新しいブラウザ・ウィンドウ(ブラウザによってはタブ)に表示されます。
印刷の場合、表の内容のみが表示されます。タブ、ツールバー、スクロール・バーなどの余分なコンポーネントはすべてレンダリングされません。
ボタンをクリックすると、action
イベントは取り消されます。かわりに、印刷可能なバージョンのページに関してサーバーへのリクエストが行われます。
showPrintablePageBehavior
タグは、コマンド・コンポーネントの直接の子として使用されます。
showPrintablePageBehaviorタグを使用する手順:
レイアウト・コンポーネントのいずれかで、印刷するコンテンツを含むファセットにコマンド・コンポーネントを追加します。手順は、18.2.1項「コマンド・ボタンおよびコマンド・リンクの使用方法」を参照してください。
注意: ユーザーがページ全体を印刷できるようにレイアウト・コンポーネントの外に |
コンポーネント・パレットの「操作」パネルで、「印刷可能なページの表示動作」をドラッグし、コマンド・コンポーネントの子としてドロップします。
アプリケーションのページをメール送信する必要がある場合があります。たとえば、Web上で作成された注文書は、多くの場合、セッションの最後に購入者に対してメールで送付されます。ただし、メール・クライアントでは、Webブラウザへのレンダリングに使用する外部のスタイルシートに対応していないため、正しくレンダリングされず、同じページをメール送信することができません。
ADF Facesフレームワークでは、JSFページの自動変換が行われるため、Microsoft Outlook 2007およびMozilla Thunderbird 2.0メール・クライアントで正しくレンダリングされます。
すべてのコンポーネントを、メール・クライアントでレンダリングできるわけではありません。次のコンポーネントは変換できるため、メール・クライアントで適切にレンダリングされます。
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
(テキストとしてレンダリング)
メール・クライアントでレンダリングするページを変換するようにADF Facesフレームワークに通知するには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。
org.apache.myfaces.trinidad.agent.email=true
たとえば、図33-3に示すように、注文書を表示するページがあるとします。
上部にあるメール可能なページリンクをクリックすると、actionListener
メソッドまたは別のサービスで、現在のURLにorg.apache.myfaces.trinidad.agent.email=true
を追加してページをメール送信します。図33-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」を選択します。 |
必要に応じて、エージェントを使用して、メール・バージョンのページ専用のスキンを作成します。例33-1に、メールでレンダリングされる表に枠を指定する方法を示します。
例33-1 メール可能なページのスキン
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