Как программно ajax-обновить определенный компонент в бэк-бине
Есть ли способ ajax-обновления определенного компонента, такого как <h:form>
в бобе?
Я попробовал следующее, используя RequestContext#execute()
,
RequestContext context = RequestContext.getCurrentInstance();
context.execute("monitorVehicleForm.update()");
однако это, похоже, не имело никакого эффекта.
1 ответ
Решение
RequestContext#execute()
выполняет только произвольный код JavaScript, который был передан в качестве аргумента. Это не ajax-обновление клиентского представления компонентов.
Тебе нужно RequestContext#update()
вместо этого вы просто передаете идентификатор клиента для обновляемого компонента.
context.update("monitorVehicleForm");
Это имеет точно такой же эффект, как <p:commandXxx ... update="monitorVehicleForm">
, Это работает, если у вас есть
<h:form id="monitorVehicleForm">
без всяких NamingContainer
родитель и, таким образом, имеют
<form id="monitorVehicleForm" name="monitorVehicleForm" ...>
в сгенерированном HTML.