Mittwoch, 4. August 2010

JSF ComboBoxen mit Autopostback

Um Dynamische GUIs zu bauen gibt es verschieden Optionen die GUI zu verändern.
In den meisten JSF-Einführungenwird zwar beschrieben wie man ein SelectOne verwendet, jedoch nicht wie man eine Bestimmte logik im Backing bean anspricht.




<h:selectOneMenu id="selectCar" value="#{carBean.currentCar}">
<f:selectItems value="#{carBean.carList}" />
</h:selectOneMenu>


Der Entscheidende Punkt ist, dass 2 Attribute gesetut werden müssen.
das onchange="this.form.submit()" bewirkt, dass die Werte des Formulars ins Model übernommen werden (durch Aufruf der setter-Methode).
Die Business-Logik sollte man aber nicht in den Setter reinbauen. Sondern sollte mittels eines valueChangeListener eingebunden werden.


<h:selectOneMenu id="selectCar" value="#{carBean.currentCar}"
valueChangeListener="#{BackingBean.processValueChange}"
onchange="this.form.submit()"
>
<f:selectItems value="#{carBean.carList}" />
</h:selectOneMenu>



public void  proessValueChange(ValueChangeEvent event) {
//some logic
}

Keine Kommentare:

Kommentar veröffentlichen