这个问题已经在这里有一个答案:
- 阿贾克斯更新/渲染已经渲染属性的组件不工作 1回答
我有我想要显示/隐藏用户点击一个组件后commandButton
。
就像这样:
<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
<f:ajax listener="#{bean.toggle()}" render="explanation showButton" />
</h:commandButton>
和
<h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
<h:outputText value="something" />
</h:panelGroup>
该bean.toggle()
只是设置wasPressed
属性为true或false适当。 我使用<h:form prependId="false">
。
问题是价值render
我的按钮的属性。 它明确地报名两种: explanation
和showButton
。
只要showButton
总是存在(它只是改变了它的标签),该explanation
只存在,如果wasPressed
属性为true。 否则,它说:
malformedXML:在更新:explanaition未找到
我怎么解决这个问题?
我想不恢复到在源代码中隐藏元件,所以我想不使用任何jQuery的肘节( - )或隐藏使用该元件的任何方式style="display: none"
或任何这些东西。
它甚至在JSF 2.1实现的?