有没有办法让JSF支持bean在页面上引起组件的更新?我不希望使用具有更新属性的ajax组件来更新页面上的组件。我需要从JSF支持bean方法中触发更新。注页面上的更新可以在此方法完成之后进行,也可以在其完成之前进行。我正在使用PrimeFaces,如果使用PrimeFaces有解决方案的话。
发布于 2015-07-02 18:48:39
我还尝试从支持jsf的bean/类更新组件。
在操作UI组件后,您需要执行以下操作:
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(componentToBeRerendered.getClientId())
使用clientId而不是(服务器端)componentId非常重要!!
发布于 2019-11-19 23:00:27
只有在有足够的时间研究的情况下,一切都是可能的:)
我要做的就像让我在ui中迭代的人:重复并在输入中显示姓名和其他字段。但是其中一个字段是singleSelect -A,并根据它的值更新另一个输入- B。甚至ui:repeat没有我放入的id,它出现在DOM树中
<ui:repeat id="peopleRepeat"
value="#{myBean.people}"
var="person" varStatus="status">
则html中的ids类似于:
myForm:peopleRepeat:0:personType
myForm:peopleRepeat:1:personType
在视图中,我得到了一种方法,例如:
<p:ajax event="change"
listener="#{myBean.onPersonTypeChange(person, status.index)}"/>
并且它的实现在bean中如下所示:
String componentId = "myForm:peopleRepeat" + idx + "personType";
PrimeFaces.current().ajax().update(componentId);
因此,通过这种方式,我没有出现任何问题地更新了bean中的元素。PF 6.2版
祝你好运,编码愉快:)
发布于 2021-03-25 00:53:24
为了从backing更新组件,我们可以实现如下RequestContext.getCurrentInstance().update('updatePanelGroup');
<h:panelGroup id="updatePanelGroup">
.....
....
</h:panelGroup>
根据原始表面版本,更新组件是不同的。
https://stackoverflow.com/questions/11365094
复制相似问题