web-dev-qa-db-ja.com

f:ajaxを使用して複数のコンポーネントをレンダリングする

間違ったコードは次のとおりです。

<h:form id="search_form">
<h:commandButton class="button" value="View" action="#{InfoBean.search}">
    <f:ajax execute="search_form" render="linear1"></f:ajax>
    <f:ajax execute="search_form" render="linear2"></f:ajax>
</h:commandButton>
<p:lineChart id="linear1" value="#{InfoBean.linearModel1}" legendPosition="e"/>
<p:lineChart id="linear2" value="#{InfoBean.linearModel2}" legendPosition="e"/>
</h:form>

commandButtonをクリックしたときに、これら2つのチャートを更新したいです。しかし、今では2つの<ajax>タグ。2番目のタグは機能しません。

では、どのようにajaxを使用して2つのグラフをレンダリングできますか?

24
Cacheing

単一のf:ajaxで複数のコンポーネントをレンダリングできます。更新する個々のコンポーネントがすべてidを持っていることを確認してください。サンプルでは次のようになります。

<f:ajax execute="search_form" render="linear1 linear2"/>

IDはlinear1 linear2のような空白だけで区切る必要があり、linear1, linear2のようにコンマで区切る必要はありません(p:ajaxでのみ機能します)。

以下も参照してください:

51
partlov

A4j jsfには「、」を使用します:<a4j:support event="onchange" reRender="parent,child1,child2" />

0
Chinmoy