AJAX-Renderattribut funktioniert nicht mit der Komponente "rendering =" false "[duplicate]

Diese Frage hat hier bereits eine Antwort:

Ajax Update / Render funktioniert nicht für eine Komponente, die das Attribut gerendert hat 1 Antwort

Ich habe eine Komponente, die ich anzeigen / verbergen möchte, nachdem der Benutzer a gedrückt hatcommandButton.

Es ist so:

<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
    <f:ajax listener="#{bean.toggle()}" render="explanation showButton" />
</h:commandButton>

und

<h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
    <h:outputText value="something" />
</h:panelGroup>

Dasbean.toggle() setzt einfach diewasPressed Eigentum richtig oder falsch geeignet. ich benutze<h:form prependId="false">.

Das Problem ist der Wert derrender Attribut meines Knopfes. Es trägt ausdrücklich beide ein:explanation undshowButton.

Solange dieshowButton ist immer vorhanden (es ändert nur die Bezeichnung), dieexplanation ist nur vorhanden, wenn diewasPressed Eigentum ist wahr. Ansonsten heißt es:

malformedXML: Während des Updates: Erklärung nicht gefunden

Wie kann ich dieses Problem lösen?

Ich möchte nicht zurückkehren, um das Element im Quellcode auszublenden, also möchte ich keinen jQuery-Schalter (-) oder irgendeine Möglichkeit zum Ausblenden des Elements mit verwendenstyle="display: none" oder irgendetwas davon.

Ist es in JSF 2.1 überhaupt erreichbar?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage