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.

... link (0 Kommentare)   ... comment