部分ページ・レンダリング(PPR)を使用すると、ページ内の小さい領域を、ページ全体を再描画せずにリフレッシュできます。たとえば、ユーザーが入力コンポーネントで選択または入力した内容を出力コンポーネントで表示する場合があります。または、コマンド・リンクやボタンで、別のコンポーネントを更新する場合があります。
PPRは、現在次のブラウザでサポートされています。
その他のプラットフォームの場合、ADF Facesでは自動的に全ページ・レンダリングが実行されます。
JDeveloperで、JSFページにADF Facesコンポーネントを初めて追加すると、<afh:html>
、<afh:head>
および<afh:body>
タグが自動的に挿入されます。この<afh:body>
タグによって、ページ内でPPRが使用可能になります。ページ内で<afh:body>
を使用できない場合は、かわりにPPRブロックの使用を検討してください。
多くのADF Facesコンポーネントは、そのアクションにPPRを使用します。たとえば、table
、showDetail
およびshowDetailHeader
に加え、tree
、treeTable
、menuTree
およびpage
コンポーネントが指定されているコンポーネントのツリー・ファミリは、そのほとんどのイベントにPPRを使用します。
部分ページ・レンダリングでは、主に次の3つのコンポーネント属性が使用されます。
autoSubmit
inputText
、selectManyListbox
など)または表選択コンポーネント(tableSelectMany
など)のautoSubmit
属性がtrue
に設定されていて、適切なアクション(値の変更など)が発生すると、コンポーネントは、そのコンポーネントが挿入されたフォームを自動的に発行します。PPRの場合は、この属性をリスナー属性と併用できます。リスナー属性は、発行に基づいてイベントが起動されると、なんらかのロジックを実行するメソッドにバインドされています。
partialSubmit
partialSubmit
属性がtrue
に設定されている場合は、ボタンまたはリンクがクリックされるとページが部分的に発行されます。この属性は、ボタンまたはリンクがクリックされたときになんらかのロジックを実行するactionListener
メソッドと併用できます。「部分イベントおよびADF Facesコマンド・コンポーネントについて」を参照してください。
partialTriggers
partialTriggers
属性をサポートします。
たとえば、ユーザーがラジオ・ボタン・リストから選択した内容を出力コンポーネントで、次のように表示するとします。
この例のselectOneRadio
コンポーネント(トリガー)には、Trueに設定されたautoSubmit
属性と、マネージドBeanメソッドにバインドされたvalueChangeListener
属性があります。このメソッドは、選択した値のラベルを取得し、そのラベルをradioValue
と呼ばれるプロパティに値として設定します。選択内容(ターゲット)を表示するoutputText
コンポーネントには、トリガー・コンポーネントのIDに設定されたpartialTrigger
属性と、valueChangeListener
メソッドによって更新されたradioValue
プロパティにバインドされた値があります。
JSPのコードは、次のようになります。
<h:form>
...
<af:selectOneRadio label="Select One:"
valueChangeListener="#{pprBean.valueChanged}"
autoSubmit="true"
id="select1">
<af:selectItem label="Choice 1" value="1"/>
<af:selectItem label="Choice 2" value="2"/>
<af:selectItem label="Choice 3" value="3"/>
</af:selectOneRadio>
<af:outputLabel value="You've selected:"/>
<af:outputText value="#{pprBean.radioValue}"
partialTriggers="select1"/>
...
</h:form>
たとえば、ユーザーが2番目のラジオ・ボタンを選択すると、出力テキストには「You've selected: Choice 2」と表示されます。
注意: スクリーン・リーダーでは、部分ページ・リクエストで全ページの再読込みは実行されません。PPRによって、スクリーン・リーダーは部分アクションを起動したコンポーネントから始まるページを読み込みます。したがって、ターゲット・コンポーネントは、部分リクエストを起動するコンポーネントの後に配置する必要があります。このようにしないと、更新したターゲットがスクリーン・リーダーに読み込まれません。
コンポーネントを他のコンポーネントの変化に対応させるために、partialTriggers
属性を使用する必要はありません。かわりに、ターゲット・コンポーネントの値をbinding
属性を使用してプログラムによって変更し、ターゲットのインスタンスを、トリガーによって更新されたプロパティにバインドできます。
PPRの詳細な例は、「ADF Facesのデモ・ファイルについて」の部分ページ・レンダリング機能のデモを参照してください。
自動発行およびADF Faces入力コンポーネントについて
JSFでのイベントおよびイベント・リスナーの使用
タグ属性のバインドとコンポーネント・インスタンスのバインドの比較について
Copyright © 1997, 2006, Oracle. All rights reserved.