Donnerstag, 12. März 2009
Ajax-Update einer JSF-Seite funktioniert nicht
Ich wollte mittelts einer a4j:commandLink Action einen Teil der Seite neu rendern:

Ein vereinfachtes Beispiel:


< h:outputText id="update"
value="#{updateBean.newString}">< /h:outputText>

< a4j:commandButton value="change Output" action="#{updateBean.changeString}" reRender="update">
< /a4j:commandButton>


Die ManagedBean setzt in der Methode changeString einfach einen neuen String.

Leider tat sich die ganze Zeit nichts und der neue String wurde nie angezeit.

Der Grund: Anscheinend muss die ManagedBean, die diesen AjaxRequest ausführt, bzw. den Wert für #{updateBean.newString} hält im Session scope liegen. Wenn der scope Request ist, dann wird bei jedem Klick auf den "Change Output" Button eine neue Bean erzeugt, welche die Initialwerte enthält.

... comment