JSF Radio Button ValueChangeListener Wert wird nicht übernommen

geqoo

Bekanntes Mitglied
Hallo,

ich stehe hier gerade vor einem kleinen Problem, wo bei mir auch langsam die Luft mit der Suche raus ist.
Ich verwende Apache Tomcat 7.0 mit JSF 1.2 zusammen mit Eclipse

Ich habe hier einen RadioButton:
*t steht für tomahawk

[XML]
<t:selectOneRadio id="testRadio" onchange="submit()" value="#{testBean.radioItem}">
<f:selectItems value="#{testBean.radioItems}" />
<f:valueChangeListener type="packe.path.testBean" />
</t:selectOneRadio>
[/XML]

So, nun habe ich in meiner Bean einen ValueChangeListener registriert, der auch soweit ausgeführt wird:

Java:
public class testBean implements ValueChangeListener, ActionListener, Serializable {

  // ...

  @Override
  public void processValueChange(ValueChangeEvent event) throws AbortProcessingException {
    TestBean bean = (TestBean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("testBean");

    bean.data.clear();
    bean.abrunden = false; // abrunden gehört zu einer CheckBox
  }
}

Wie im Kommentar beschrieben, möchte ich den bool'schen Wert der CheckBox "abrunden" ändern.
Ich habe im Debug-Modus soweit geprüft, ob der Listener für den RadioButton auch ausgeführt wird. Der Listener an sich wird ausgeführt.
Allerdings wird danach beim Neu-Laden der Seite wieder der alte Wert der CheckBox übernommen, obwohl ich diesen ja eigentlich gerade auf false gesetzt habe.

Was mache ich da falsch?
 
Zuletzt bearbeitet:
Nachtrag: Ich denke, es hat irgendwas damit zu tun, dass der Process Life Cycle verletzt wird, weil die Werte nach meinem Setzen nochmal geprüft werden und dort der Server merkt, dass die CheckBox ja doch gesetzt ist. Das müsste man wahrscheinlich umgehen, indem man den Life Cycle vorzeitig beendet.
Ich denke, das geht mit dem Schlüsselwort immediate. Kann mir da jemand sagen, wo ich das einbauen muss, damit es so wie gewünscht funktioniert?
 
in der Sessionmap liegt noch der alte Wert, wenn ich mich am frühen Morgen nicht täusche.
Du holst dir die Bean aus der Session, aber von zurückschreiben sehe ich gerade nichts.
 

Zurück
Oben