gpt4 book ai didi

JSF + PrimeFaces : `update` attribute does not update component

转载 作者:行者123 更新时间:2023-12-02 21:38:26 35 4
gpt4 key购买 nike

这是我的布局

<div id="mainPanel">
<div id="padding">
<h:outputText id="text" value="Personal Feed" rendered="#{Profile.renderComment}"/>
</div>
<div id="right">
<h:form>
<p:commandButton value="Update" actionListener="#{bean.toggleComment}" update="text" />
</h:form>
</div>
</div>

当我点击链接更新时,该链接应该打开和关闭renderComment bool 值,但它不会切换文本个人提要的显示。现在,如果我在 h:outputText 周围放置一个表单,并更新 form,那么它就可以工作。这是为什么?

最佳答案

update 属性应指向 HTML DOM 树中现有的客户端 ID。但是,由于该元素在 HTML DOM 树中不可用,因为它不是由服务器端渲染的,因此 JS/ajax 无法在 HTML DOM 树中找到任何内容进行更新。

事实上,您应该将其包装在 HTML DOM 树中始终可用的另一个元素中,以便 Ajax 可以找到它,然后在 update 中使用其客户端 ID。对于您的情况,您可以使用 padding 来实现此目的。

<div id="mainPanel">
<h:panelGroup id="padding" layout="block">
<h:outputText id="text" value="Personal Feed" rendered="#{Profile.renderComment}"/>
</h:panelGroup>
<div id="right">
<h:form>
<p:commandButton value="Update" actionListener="#{bean.toggleComment}" update=":padding" />
</h:form>
</div>
</div>

关于JSF + PrimeFaces : `update` attribute does not update component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573190/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com