概要
JViews Web テクノロジーは、Sun™
JSF
2.0 Reference Implementation に対する基礎サポートを提供し、次の機能を備えています。
- JViews JSF コンポーネントは、Sun JSF 2.0 Reference Implementation ランタイムで動作します。
- JViews JSF コンポーネントは、JSF 2 のカスタム・コンポーネント機能をサポートします。
- JViews JSF コンポーネントは、JSF 2 の Facelets 2 テクノロジーをサポートします。
- JViews JSF コンポーネントは、
<f:ajax>
タグを使用することなく、JSF2 部分ページ・レンダリング・テクノロジーをサポートします。
メモ
JViews Web テクノロジーは、独自の Ajax 実装を装備しているため、JSF 2 Ajax メカニズムを使用しません。JViews JSF コンポーネントとその他の JSF 2 コンポーネントの両方を同じページで使用する場合、JViews コンポーネントから送信される Ajax 要求は、JSF 2 Ajax キューに入らず、JSF 2 Ajax メカニズムで管理されません。
JSF 2 を使用するための前提条件
JViews コンポーネントを有効にして JSF 2 ランタイムをサポートするには、JSF 2 固有の jar をアプリケーションのクラスパスに追加する必要があります。次に例を示します。
classpath=jviews-jsf2-facelets-support.jar; jviews-xxx-all.jar
JViews JSF コンポーネントを使用した JSF 2 の部分ページ・レンダリング機能のトリガー
JViews は、
ajaxInteractor
という新しい JSF 2 固有の Facelets インタラクターを提供して、<f:ajax>
タグを使用することなく、JSF2 の部分ページ・レンダリング (PPR) 機能をユーザーがトリガーすることを可能にします。ajaxInteractor
により、開発者は、PPR アクションを、自身が指定する別の JSF 2 コンポーネントに対してトリガーすることができます。ajaxInteractor
が付けられたビューをユーザーがクリックすると、jsf.ajax.request()
クエリーが送信されて、指定された ID を持つ JSF 2 コンポーネントが再レンダリングされ、ページ全体の更新が必要ありません。属性
名前 |
必須 |
タイプ
|
説明 |
---|---|---|---|
id |
true |
java.lang.String |
コンポーネントの ID。 |
render |
true |
java.lang.String |
ajaxInteractor がレンダリングするコンポーネントの ID。このコンポーネントは、JSF 2 を有効にし、指定されたコンポーネントを再レンダリングするための jsf.ajax.request() クエリーを送信します。レンダリング対象の ID が複数ある場合は、スペースで区切ります。 |
使用法
ajaxInteractor
を使用するには、JSF 2 Ajax JavaScriptライブラリーがページにインポートされている必要があります。次のコード例は、JSF 2 Ajax JavaScript ライブラリーをインポートする方法を示しています。
<h:outputScript name="jsf.js" library="javax.faces" target="head" />
interactorGroup
を使用すると、ajaxInteractor
を他のどのようなインタラクターとでも組み合わせることができます。次のコード例は、
ajaxInteractor
を他のインタラクターと組み合わせる方法を示しています。<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jvf="http://www.ilog.com/jviews/tlds/jviews-framework-faces.tld" xmlns:jv="http://www.ilog.com/jviews/tlds/jviews-faces.tld" > <h:body> <h:form prependId="false" id="helloForm"> <h:outputScript name="jsf.js" library="javax.faces" target="head" /> <h:outputText id="out1" value="#{count1.number}" /> <h:outputText id="out2" value="#{count1.number}" /> <jvf:objectSelectInteractor id="select" valueChangeListener="#{frameworkBean.selectObject}" invocationContext="IMAGE_SERVLET_CONTEXT" /> <jv:ajaxInteractor id="ajax" render="out1 out2" /> <jv:interactorGroup id="interactorGroup" interactors="select ajax" /> <jvf:view id="view" style="width:500px;height:300px" view="#{frameworkBean.view}" interactorId="interactorGroup" /> </h:form> </h:body>
JSF 2 コンポーネントを使用した JViews JSF コンポーネントのレンダリング
JViews コンポーネントをレンダリングするには、JSF コンテナー・タグ (
h:panelGrid
など) を使用して、JViews コンポーネントをラップし、この panelGrid
の id
をレンダリングします。<h:commandButton id="button1" value="diagrammer" onclick="jsf.ajax.request(this,event,{render:'diagrammer_panelgrid'});return false;" /> <h:panelGrid id="diagrammer_panelgrid"> <jvdf:diagrammerView id="diagrammer" style="width:500px;height:300px" data="/data/molecule.idpr"/> </h:panelGrid>