Подтвердить что ты не робот

Отобразить несколько компонентов с помощью 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, я хочу обновить эти две диаграммы. Но теперь я использовал два тега <ajax>, второй из которых не работает.

Итак, как я могу использовать ajax для рендеринга двух диаграмм?

4b9b3361

Ответ 1

Вы можете отображать несколько компонентов с помощью одного f:ajax. Просто убедитесь, что все отдельные компоненты, которые вы хотите обновить, имеют id. В вашем примере это будет примерно так:

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

Если идентификаторы должны быть разделены просто пробелами, такими как linear1 linear2, а не скомпонованным как linear1, linear2 (который работает только в p:ajax).

См. также:

Ответ 2

Для a4j jsf используйте ',': <a4j:support event="onchange" reRender="parent,child1,child2" />