Donnerstag, 12. März 2009
Ajax-Update einer JSF-Seite funktioniert nicht
n9in9e, 23:45h
Ich wollte mittelts einer a4j:commandLink Action einen Teil der Seite neu rendern:
Ein vereinfachtes Beispiel:
Die ManagedBean setzt in der Methode
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
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