Facelets および Trinidad のサポート

Facelets コンテキストで JViews Framework JSF コンポーネントを使用する場合は、Web アプリケーションを正しく構成する必要があります。

Facelets および Trinidad との互換性

JViews Framework JSF コンポーネントを、Facelets および Trinidad に対して互換性を持つようにするには、以下の手順に従います。
  • 構成ファイルを編集します。
    Facelets と Trinidad を併用する場合の正しい設定例を確認するには、faces-config.xml ファイルおよび web.xml ファイルを参照してください。Trinidad なしで Facelets を使用する場合は、代わりに faces-config-std.xml および web-std.xml を参照してください。
  • タグ・ライブラリーの文書に従って、XHTML ベースのページを開発します。
    Facelets では、『コンテキスト・メニュー』に記載したメニュー・タグを除き、すべての属性およびすべてのタグがサポートされます。
    カスタム・タグを使用している場合は、カスタム・ライブラリーを記述した custom.taglib.xml ファイルを提供し、ページでその XML 名前空間を宣言してください。
  • .war ファイル (またはサーバーのデフォルトのライブラリー) に、必要な Facelets (場合によっては Trinidad) jar ファイルを含めてください。
  • Facelets サポート jar を追加します。
    • JSF 1.1 または 1.2 で実行する場合: classpath=jviews-jsf1-facelets-support.jar; jviews-xxx-all.jar; <JSF1.1 or JSF1.2 jars>
    • JSF 2.0 で実行する場合: classpath=jviews-jsf2-facelets-support.jar; jviews-xxx-all.jar; <JSF2.0 jars>

コード例

Facelets または Trinidad と共に使用するために構成された完全な JViews Maps アプリケーション・サンプルについては、 <install-dir> /jviews-maps8.9/codefragments/jsf-maps-facelets/webpages/index.xhtml を参照してください。

コンテキスト・メニュー

facelets コンテキストでは、コンテキスト・メニュー・オブジェクトの factory 属性または factoryClass 属性を使用して動的メニューを指定できます。
<... contextualMenu ... factoryClass="mydemo.somepackage.MenuFactory" />
JViews Framework レベルでは、コンテキスト・メニュー要素は contextualMenu です。

静的メニュー

コンテキスト・メニュー要素の value 属性を使用して、静的メニューをバインドすることができます (ファクトリーのコードを一度だけ実行)。
<... contextualMenu ... value="#{chartBean.menu}" />
さらに、menu、menuItem、または menuSeparator の各タグ・コンポーネントをページで直接使用できます。
<jvf:contextualMenu itemStyleClass="menuItem"
                    itemHighlightedStyleClass="menuItemHighlighted"
                    itemDisabledStyleClass="menuItemDisabled">
     <jv:menu>
          <jv:menuItem label="menuItem 1" onclick="alert('menuItem 1')" /> 
          <jv:menuItem label="menuItem 2" onclick="alert('menuItem 2')" />
          <jv:menuItem label="menuItem 3" onclick="alert('menuItem 3')" />
          <jv:menuSeparator /> 
          <jv:menu label="subMenu">
              <jv:menuItem label="subMenu Item 1" 
                 onclick="alert('subMenu Item 1')" />
              <jv:menuItem label="subMenu Item 2" 
                 onclick="alert('subMenu Item 2')" />
          </jv:menu>
      </jv:menu>
</jvf:contextualMenu>