ADF Facesのコマンド・ボタンおよびリンクは、部分イベントを生成できます。commandButton
またはcommandLink
のpartialSubmit
属性によって、アクションの実行に部分ページ発行が使用されるかどうかが決定されます。partialSubmit
がtrue
の場合、ADF Facesでは、部分ページ発行によってアクションが実行されます。このように、コマンド・ボタンまたはリンクを使用して、発行時にページ全体を再描画せずにページの一部を更新できます。
デフォルトでは、partialSubmit
の値はfalse
であり、部分ページ・イベントの応答で全ページ・レンダリングが使用されることを意味します。全ページ・レンダリングは、別のページに移動したとき、あるいはクライアントのブラウザまたはプラットフォームで部分ページ・レンダリングがサポートされていない場合にも自動的に使用されます。
たとえば、アクティブになると時間が表示されるコマンド・ボタンがあるとします。
<af:panelPage title="Title 1">
<af:outputFormatted styleUsage="instruction" value="Click button to see time update"/>
<af:panelGroup layout="horizontal">
<af:commandButton immediate="true"
partialSubmit="true"
text="partialSubmit Button"
actionListener="#{partialBean.partial}"/>
<af:objectSpacer width="30" height="10"/>
<af:panelGroup>
<af:panelLabelAndMessage label="time button is clicked: ">
<af:outputFormatted id="cmdTarget"
styleUsage="instruction"
binding="#{partialBean.linkUpdate}"
value="never">
<f:convertDateTime pattern="HH:mm:ss"/>
</af:outputFormatted>
</af:panelLabelAndMessage>
</af:panelGroup>
</af:panelGroup>
</af:panelPage>
...
private CoreOutputFormatted linkUpdate;
public void setLinkUpdate(CoreOutputFormatted linkUpdate)
{
this.linkUpdate = linkUpdate;
}
public CoreOutputFormatted getLinkUpdate()
{
return linkUpdate;
}
public void partial(ActionEvent actionEvent)
{
linkUpdate.setValue(new Date());
AdfFacesContext.getCurrentInstance().addPartialTarget(linkUpdate);
}
...
この例で、commandButton
コンポーネントのpartialSubmit
属性はtrue
に設定されていて、そのactionListener
属性はマネージドBeanのアクション・リスナー・メソッドにバインドされています。このメソッドによって、linkUpdate
というプロパティの値として新しい時間が設定されます。(新しい時間を表示する)outputFormatted
コンポーネントのbinding
属性は、アクション・リスナー・メソッドによって更新されるlinkUpdate
プロパティにバインドされています。outputFormatted
のコンポーネント・インスタンスは、(コンポーネントoutputFormatted
と型が同じ)linkUpdate
プロパティにバインドされているため、アクション・リスナー・メソッドによって、コンポーネント・インスタンスにアクセスし、コンポーネントのvalue
属性を更新して新しい時間を表示できます。AdfFacesContext.addPartialTarget
メソッドでは、部分ターゲットとしてコンポーネントが追加されます。これは、部分ターゲットとして登録されているコンポーネントのみが、部分イベントの応答でレンダリングされることを意味します。
ターゲット・コンポーネントが1つ以上のコマンド・コンポーネントで部分イベントをリスニングできるようにするには、ターゲット・コンポーネントのpartialTriggers
属性に、対象の(トリガー)コマンド・コンポーネントのIDをリストします。複数のIDをリストする場合はスペースで区切ります。
ADF Facesでの部分ページ・レンダリングのサポートについて
Copyright © 1997, 2007, Oracle. All rights reserved.