从this answer我得到了:
您只能ajax更新始终呈现的组件(即 当它没有渲染属性时。)
但我尝试了这段代码并且ajax-update对我不起作用,我需要刷新浏览器以查看更改的按钮。我做错了什么?
<p:outputPanel id="buttonArea">
<p:panel styleClass="button-area"
rendered="#{user != null and loginManager.profile.id != userPage.profile.id}">
<h:form>
<p:commandButton styleClass="button-flat" action="#{userPage.followUser}"
value="Follow" rendered="#{!userPage.followed}" update="buttonArea"/>
<p:commandButton styleClass="button-flat" action="#{userPage.unfollowUser}"
value="Unfollow" rendered="#{userPage.followed}" update="buttonArea"/>
</h:form>
</p:panel>
</p:outputPanel>
编辑:
我尝试了可能重复的问题的解决方案,它对我来说也不起作用,我做错了,它没有在那里解释,我尝试使用ajax标签,html中的id正好是'buttonArea'但是当我引用id时,我甚至尝试使用和不使用冒号,我尝试使用片段......
答案 0 :(得分:-1)
您的commandButtons需要自己的ID。更新它们而不是面板。