您无法更新未渲染的元素,render =“ false是“ JSF的一种方法”,以从DOM树中删除元素,
它不像css display:none或visible:hidden <-这两者将使元素保留在DOM树中但被隐藏,而JSF render =
false甚至不会渲染(保留)DOM树中的元素(您甚至都不会看到它)在页面的“查看源代码”中)
因此,在这种情况下,您需要使用另一个`panelGroup’包装panelGroup并更新包装器的ID
<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}"> <f:ajax listener="#{bean.toggle()}" render="explanationWrapper showButton" /></h:commandButton><h:panelGroup id="explanationWrapper"> <h:panelGroup id="explanation" rendered="#{bean.wasPressed}"> <h:outputText value="something" /> </h:panelGroup></h:panelGroup>


