Can I update a JSF component from a JSF backing bean method?
java, javabeans, jsf, jsf-2, primefaces
Solution
Using standard JSF API, add the client ID to `PartialViewContext#getRenderIds()`.
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("foo:bar");
Using PrimeFaces specific API, use `PrimeFaces.Ajax#update()`.
PrimeFaces.current().ajax().update("foo:bar");
Or if you're not on PrimeFaces 6.2+ yet, use `RequestContext#update()`.
RequestContext.getCurrentInstance().update("foo:bar");
If you happen to use JSF utility library OmniFaces, use `Ajax#update()`.
Ajax.update("foo:bar");
Regardless of the way, note that those client IDs should represent absolute client IDs which are not prefixed with the `NamingContainer` separator character like as you would do from the view side on.
Problem
Is there a way to have a JSF Backing bean cause an update of a component on the page? I am not looking to use an ajax component with update attribute to update a component on the page. I need to trigger an update from within a JSF backing bean method. Note the update on the page can happen after this method completes or prior to its completion. I am using PrimeFaces, if there is a solution that can be had from using PrimeFaces.