我有一个组件要在用户点击后显示/隐藏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属性为真时才存在。否则它会说:
malformedXML:更新期间:未找到说明
我怎么解决这个问题?
我不想恢复到在源代码中隐藏元素,所以我不想使用任何 jQuery toggle(-) 或任何隐藏元素的方式style="display: none"或任何这些东西。
它甚至可以在 JSF 2.1 中实现吗?