使用f:ajax渲染多个组件

时间:2013-05-16 21:10:04

标签: ajax jsf jsf-2 commandbutton

错误的代码是:

<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时,我想刷新这两个图表。但现在我使用了两个<ajax>标签,其中第二个标签不起作用。

那么如何使用ajax渲染两个图表呢?

2 个答案:

答案 0 :(得分:50)

您可以使用单个f:ajax呈现多个组件。只需确保您要更新的所有单个组件都有id。在您的示例中,它将类似于:

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

ID需要仅由linear1 linear2这样的空格分隔,而不是像linear1, linear2这样的逗号分隔(仅适用于p:ajax)。

另见:

答案 1 :(得分:0)

对于a4j jsf使用',': <a4j:support event="onchange" reRender="parent,child1,child2" />