ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド
11g リリース1 (11.1.1.6.0)
B52029-06
  目次へ移動
目次

前
 
次
 

33 様々な出力モードの使用

この章では、印刷やメール送信に適したモードでページを表示する方法について説明します。

この章では、次の項目について説明します。

33.1 様々な出力モードの使用の概要

ADF Facesでは、印刷またはメール送信用の簡単なモードでページを出力できます。たとえば、Webブラウザにレンダリングされるようにページを正確に印刷するのではなく、ページ(またはページの一部)を印刷できるようにする場合、印刷するページに不要なアイテム(スクロール・バーやボタンなど)を削除できます。ページをメール送信する場合、メール・クライアントで正しく表示できるようにページを簡略化する必要があります。


注意:

デフォルトでは、ADF Facesフレームワークで、検索エンジンによるアプリケーションのクロールが検出されると、メール可能なページの形式と同様にクローラの簡単な形式でページが出力されます。Webクローラの特殊なコンテンツを生成する場合、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 2.0のいずれかの表示に適したページへの変換に使用できるAPIが提供されます。


ヒント:

現在の出力モード(emailまたはprintable)には、AdfFacesContextからアクセスできます。このコンテンツはEL対応のため、ELを使用して、JSPページから出力モードにバインドできます。たとえば、現在のモードがemailではない場合のみ、次の式を使用してグラフィックをレンダリングできます。

<af:activeImage source="/images/stockChart.gif"
              rendered="#{adfFacesContext.outputMode != "email"}"/>

現在のモードは、AdfFacesContext.getOutputMode()を使用して決定できます。


33.2 印刷用のページの表示

showPrintablePageBehaviorタグを、コマンド・コンポーネントの子として配置します。クリックすると、フレームワークは、printableBehaviorタグの親のコンポーネントで開始するコンポーネント・ツリーをたどり、panelSplitterまたはpanelAccordion、あるいはツリーのルート(どちらの場合も最初に来る)に達するまで移動します。ツリーはその場所からレンダリングされます。さらに、印刷バージョンで不要なコンポーネント(ボタン、タブ、スクロール・バーなど)は省略されます。

たとえば、ファイル・エクスプローラ・アプリケーションでは、図33-1に示すように、表を含むpanelCollectionコンポーネントのツールバーの内部にcommandButtonコンポーネントを配置できます。

図33-1 ページの印刷部分のボタン

ページの印刷部分のボタン

ボタンをクリックすると、図33-2に示すように、ページは簡略化された形式で新しいブラウザ・ウィンドウ(ブラウザによってはタブ)に表示されます。

図33-2 印刷可能なバージョンのページ

印刷可能なバージョンのページ

印刷の場合、表の内容のみが表示されます。タブ、ツールバー、スクロール・バーなどの余分なコンポーネントはすべてレンダリングされません。

ボタンをクリックすると、actionイベントは取り消されます。かわりに、印刷可能なバージョンのページに関してサーバーへのリクエストが行われます。

33.2.1 showPrintablePageBehaviorタグの使用方法

showPrintablePageBehaviorタグは、コマンド・コンポーネントの直接の子として使用されます。

showPrintablePageBehaviorタグを使用する手順:

  1. レイアウト・コンポーネントのいずれかで、印刷するコンテンツを含むファセットにコマンド・コンポーネントを追加します。手順は、18.2.1項「コマンド・ボタンおよびコマンド・リンクの使用方法」を参照してください。


    注意:

    ユーザーがページ全体を印刷できるようにレイアウト・コンポーネントの外にshowPrintablePageBehaviorコンポーネントを挿入できますが、印刷結果がレイアウトとおおまかにしか一致せず、一部のコンテンツが表示されない場合があります。そのため、ユーザーがファセットの全コンテンツを印刷できるようにするには、ユーザーが通常印刷するコンテンツを含むファセットにコマンド・コンポーネントとshowPrintablePageBehaviorコンポーネントを配置することが重要です。複数のファセットで印刷をサポートする必要がある場合は、各ファセットにコマンド・コンポーネントを1つとshowPrintablePageBehaviorタグを挿入します。すべてのコンテンツを印刷するには、ユーザーは一度に1つのファセットで印刷コマンドを実行する必要があります。


  2. コンポーネント・パレットの「操作」パネルで、「印刷可能なページの表示動作」をドラッグし、コマンド・コンポーネントの子としてドロップします。

33.3 メール可能なページの作成

アプリケーションのページをメール送信する必要がある場合があります。たとえば、Web上で作成された注文書は、多くの場合、セッションの最後に購入者に対してメールで送付されます。ただし、メール・クライアントでは、Webブラウザへのレンダリングに使用する外部のスタイルシートに対応していないため、正しくレンダリングされず、同じページをメール送信することができません。

ADF Facesフレームワークでは、JSFページの自動変換が行われるため、Microsoft Outlook 2007およびMozilla Thunderbird 2.0メール・クライアントで正しくレンダリングされます。

すべてのコンポーネントを、メール・クライアントでレンダリングできるわけではありません。次のコンポーネントは変換できるため、メール・クライアントで適切にレンダリングされます。

33.3.1 メール可能なページの作成方法

メール・クライアントでレンダリングするページを変換するようにADF Facesフレームワークに通知するには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。

org.apache.myfaces.trinidad.agent.email=true

たとえば、図33-3に示すように、注文書を表示するページがあるとします。

図33-3 注文書のWebページ

注文書のWebページ

上部にあるメール可能なページリンクをクリックすると、actionListenerメソッドまたは別のサービスで、現在のURLにorg.apache.myfaces.trinidad.agent.email=trueを追加してページをメール送信します。図33-4に、メール・クライアントに表示されるページを示します。

図33-4 メール・クライアントのページ

メール・クライアントのページ

ヒント:

メールをオフラインで表示できるようにするには、次のリクエスト・パラメータを、メール送信するページのURLに追加します。

org.apache.myfaces.trinidad.agent.email=true&oracle.adf.view.rich.render.emailContentType=multipart/related

フレームワークは、HTMLをMIME(multipart/related)に変換し、メールがオフラインで表示されるようにイメージを埋め込みます。


33.3.2 メール・クライアントでページのレンダリングをテストする方法

ページの開発を完了する前に、メール・クライアントでのページのレンダリング方法をテストできます。テストは、goButtonコンポーネントを使用して簡単に実行できます。

メール可能なページのテスト手順:

  1. コンポーネント・パレットの「共通コンポーネント」パネルで、ページのいずれかの場所に実行ボタンをドラッグ・アンド・ドロップします。

  2. プロパティ・インスペクタで、「共通」セクションを開いて、ページの名前になる宛先と、org.apache.myfaces.trinidad.agent.email=trueを設定します。

    たとえば、ページの名前がmyPageの場合、宛先属性の値は次のようにします。

    myPage.jspx?org.apache.myfaces.trinidad.agent.email=true
    
  3. ページを右クリックし、「実行」を選択して、デフォルトのブラウザでページを実行します。

    アプリケーションを初めて実行し、新しいドメインを統合WebLogic Serverで開始する際に、「デフォルト・ドメインの構成」ダイアログが表示されます。ダイアログを使用して新しいドメインの管理者パスワードを定義します。入力するパスワードは8文字以上で、数字が含まれている必要があります。

  4. ブラウザにページが表示されたら、ページに追加したgoButtonをクリックします。これにより、ブラウザにページが再度表示されますが、そのページは、メール・クライアントで処理できるページに変換されます。

  5. ブラウザで、ページのソースを表示します。たとえば、Mozilla Firefoxでは、「表示」→「ページのソース」を選択します。ソース全体を選択してコピーします。

  6. メール・クライアントで新規メッセージを作成します。ページ・ソースをメッセージに貼り付けて自分自身に送信します。


    ヒント:

    HTMLコードを貼り付けているため、おそらく挿入コマンドを使用してメール本文にHTMLを挿入する必要があります。たとえば、Thunderbirdでは、「Insert」→「HTML」を選択します。


  7. 必要に応じて、エージェントを使用して、メール・バージョンのページ専用のスキンを作成します。例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章「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。

33.3.3 実行時の処理: ADF FacesによるJSFページからメール可能なページへの変換

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