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>