有没有办法让JSF Backing bean导致页面上组件的更新?我不想使用带有update属性的ajax组件来更新页面上的组件。我需要从JSF支持bean方法中触发更新。请注意,此方法完成后或完成之前,页面上的更新可能会发生。如果使用PrimeFaces可以提供解决方案,那么我正在使用PrimeFaces。
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
使用标准的JSF API,将客户端ID添加到中PartialViewContext#getRenderIds()。
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("foo:bar");
使用PrimeFaces特定的API,请使用RequestContext#update()。
RequestContext.getCurrentInstance().update("foo:bar");
从PrimeFaces 6.2 RequestContext#update()起已弃用,请PrimeFaces::Ajax#update改用。
PrimeFaces.current().ajax().update("foo:bar");
如果您碰巧使用了JSF实用程序库OmniFaces,请使用Ajax#update()。
Ajax.update("foo:bar");
无论采用哪种方式,请注意,这些客户端ID应该代表绝对的客户端ID,并且不像NamingContainer在视图端那样用前缀分隔符作为前缀。
添加回答
举报
0/150
提交
取消