10

Is there a way to ajax-update a specific component such as a <h:form> in backing bean?

I tried the following using RequestContext#execute(),

RequestContext context = RequestContext.getCurrentInstance();
context.execute("monitorVehicleForm.update()");

however that didn't seem to have any effect.

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
Venkat Maridu
  • 892
  • 3
  • 22
  • 45

1 Answers1

14

The RequestContext#execute() only executes arbitrary JavaScript code which is been passed-in as argument. It does not ajax-update the client representation of the components.

You need RequestContext#update() instead wherein you just pass the client ID of the to-be-updated component.

context.update("monitorVehicleForm");

This has exactly the same effect as <p:commandXxx ... update="monitorVehicleForm">. This works provided you've a

<h:form id="monitorVehicleForm">

without any NamingContainer parent and thus have a

<form id="monitorVehicleForm" name="monitorVehicleForm" ...> 

in the generated HTML.

See also:

Community
  • 1
  • 1
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555