Как программно 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.

Смотрите также:

Другие вопросы по тегам