首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以从JSF支持bean方法更新JSF组件吗?

我可以从JSF支持bean方法更新JSF组件吗?
EN

Stack Overflow用户
提问于 2012-07-06 23:22:13
回答 3查看 171.6K关注 0票数 105

有没有办法让JSF支持bean在页面上引起组件的更新?我不希望使用具有更新属性的ajax组件来更新页面上的组件。我需要从JSF支持bean方法中触发更新。注页面上的更新可以在此方法完成之后进行,也可以在其完成之前进行。我正在使用PrimeFaces,如果使用PrimeFaces有解决方案的话。

EN

回答 3

Stack Overflow用户

发布于 2015-07-02 18:48:39

我还尝试从支持jsf的bean/类更新组件。

在操作UI组件后,您需要执行以下操作:

代码语言:javascript
复制
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(componentToBeRerendered.getClientId())

使用clientId而不是(服务器端)componentId非常重要!!

票数 9
EN

Stack Overflow用户

发布于 2019-11-19 23:00:27

只有在有足够的时间研究的情况下,一切都是可能的:)

我要做的就像让我在ui中迭代的人:重复并在输入中显示姓名和其他字段。但是其中一个字段是singleSelect -A,并根据它的值更新另一个输入- B。甚至ui:repeat没有我放入的id,它出现在DOM树中

代码语言:javascript
复制
<ui:repeat id="peopleRepeat"
value="#{myBean.people}"
var="person" varStatus="status">

则html中的ids类似于:

代码语言:javascript
复制
myForm:peopleRepeat:0:personType
myForm:peopleRepeat:1:personType

在视图中,我得到了一种方法,例如:

代码语言:javascript
复制
<p:ajax event="change"
listener="#{myBean.onPersonTypeChange(person, status.index)}"/>

并且它的实现在bean中如下所示:

代码语言:javascript
复制
String componentId = "myForm:peopleRepeat" + idx + "personType";
PrimeFaces.current().ajax().update(componentId);

因此,通过这种方式,我没有出现任何问题地更新了bean中的元素。PF 6.2版

祝你好运,编码愉快:)

票数 1
EN

Stack Overflow用户

发布于 2021-03-25 00:53:24

为了从backing更新组件,我们可以实现如下RequestContext.getCurrentInstance().update('updatePanelGroup');

代码语言:javascript
复制
<h:panelGroup id="updatePanelGroup">
    .....
    ....
</h:panelGroup>

根据原始表面版本,更新组件是不同的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11365094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档