JSR 168 ポートレットでの JViews JSF アプリケーションの実行

メモ
サポートされる JSF 実装および JSF ポートレット・ブリッジの組み合わせについては、「リリース・ノート」を参照してください。
JSR 168 ポートレット環境で JViews JSF コンポーネントを使用したい場合は、まず、JavaServer™ Faces コンポーネントがサポートされているかどうかをポータル・ベンダーに問い合わせる必要があります。
ご使用の Web アプリケーションを正しく構成する必要があります。 このセクションでは、JViews JSF コンポーネントをポートレットと互換性があるようにするために必要な手順をステップごとに説明します。
メモ
クラスパスでポートレット API のクラスが検出されると、JViews JSF コンポーネントが自動的にポートレット・モードに切り替えられます。
ポートレット間のネーミング・クラッシュを回避するために、JSR 168 仕様では、各ポートレットに固有のコンテンツを生成する必要があります。 したがって、JViews JSF コンポーネントによって使用される生成された変数の前にポートレットの名前空間を付ける必要があります。

先頭に名前空間が付けられるスクリプト

JViews 8.1 より後のバージョンでは、サーブレット・フィルター IlvJSNamespaceFilter はもはや不要であり、これをコントローラー・サーブレットで設定しないようにしてください。

先頭に名前空間が付けられる JavaScript 変数

ポートレット・モードでは、生成された JavaScript™ 変数の前にポートレットの名前空間が付けられます。 したがって、JSP™ ページでのこれらの変数の使用はまったく異なります。
Rogue Wave® JViews では、ilog.views.faces.IlvFacesUtil の静的メソッド encodeJavaScriptVariablesを使用することにより、JavaScript アクションは Managed Bean に基づいて行われます。
パラメーターは、変数の宣言が ${id} 表記で行われる望ましい JavaScript アクションです。 次に例を示します。
IlvFacesUtil.encodeJavaScriptVariables("${view}.setInteractor(${interactor})");
ここで、view および interactor は JavaScript 変数を表します。
このメソッドを呼び出した結果は、名前空間エンコード変数をもつ最終 JavaScript アクションです。
JavaScript ハンドラーを持つ JViews JSF コンポーネントは、これらの Bean プロパティーのみを参照する必要があります。
次のコード例は、JSP ページおよび Managed Bean での JavaScript アクションのより詳細な使用法を示しています。

JViews Diagrammer

JSP ページでの JavaScript アクションの使用
[...]
<jvf:zoomInteractor id="zoom" />
<jv:imageButton onclick="#{diagrammerBean.setZoomAction}"/>
<jvdf:diagrammerView id="diagrammer" />
[...]
Managed Bean での JavaScript アクションの使用
public class DiagrammerBean {
[...]
  private String setZoomAction;
  public DiagrammerBean(){
    setZoomAction = 
      IlvFacesUtil.encodeJavaScriptVariables("${diagrammer}.setInteractor(${
        zoom})");
  }
  public String getSetZoomAction(){
    return setZoomAction;
  }
[...]
}

JViews Framework レベル

JSP ページでの JavaScript アクションの使用
[...]
<jvf:zoomInteractor id="zoom" />
<jv:imageButton onclick="#{frameworkBean.setZoomAction}"/>
<jvf:view id="view" />
[...]
Managed Bean での JavaScript アクションの使用
public class FrameworkBean {
[...]
  private String setZoomAction;
  public FrameworkBean(){
    setZoomAction = 
      IlvFacesUtil.encodeJavaScriptVariables("${view}.setInteractor(${zoom})");
  }
  public String getSetZoomAction(){
    return setZoomAction;
  }
[...]
}

イメージ・サーブレットの宣言

ポートレット・モードでは、イメージをレンダリングするために使用されるサーブレットを宣言する必要があります。
JViews Diagrammer
<jvdf diagrammerView [...] servlet=
    "ilog.views.diagrammer.faces.dhtml.servlet.IlvFacesDiagrammerServlet />"
JViews Framework レベル
<jvf view [...] servlet=
    "ilog.views.faces.dhtml.servlet.IlvFacesManagerServlet />"

ポータルへの JSF コンポーネントの統合

ご使用のポータル実装によっては、アプリケーション・サーバー、JSF 実装、ポートレット-JSF ブリッジなどによって条件付けられる特別な構成が JSF コンポーネントの統合に必要な場合があります。 この構成ステップで行う必要がある内容をポータル・ベンダーに問い合わせてください。