JSF - übergabe eines Parameters valuechangelistener
Ich habe ein kleines radiobutton wie diese :
<h:selectOneRadio value="#{test.answer}" valueChangeListener="#{TestService.changeanswer}" immediate="true" id="answer">
<f:selectItem itemValue="A" itemLabel="Absolutely True"/>
<f:selectItem itemValue="B" itemLabel="True"/>
<f:selectItem itemValue="C" itemLabel="Partially True"/>
<f:selectItem itemValue="D" itemLabel="Not True"/>
<f:selectItem itemValue="E" itemLabel="Definitely Not True"/>
<f:ajax event="change" process="answer"></f:ajax></h:selectOneRadio>
Und mein Hörer ist so :
public void changeanswer(ValueChangeEvent vcEvent) {
System.out.println("comeon= " + vcEvent.getOldValue());
System.out.println("comeon= " + vcEvent.getNewValue());}
Ich möchte ein parameter übergeben werden, um die changeanswer Methode.Zum Beispiel möchte ich weitergeben die questionid der changeanswer Funktion. Ich muss einige Vorkehrungen zu treffen in it.
Wie kann ich das tun?
Vielen vielen vielen Dank im Voraus.
Brad - der Rookie..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen, wie die Werte der Komponenten gebunden sind, ich Wette, dass es innerhalb einer datatable. Wenn das tatsächlich der Fall ist, können Sie
DataModel#getRowData()
, um die aktuelle Zeile. Hinzufügen einesDataModel
- Eigenschaft, um dieTestService
Bohne wie folgt:und ändern Sie die Ansicht wie folgt:
Sagte, ich würde vorschlagen, die Verwendung sinnvoller Namen der Variablen als
TestService
,test
undchange()
wieQuestionaire
,question
undchangeAnswer()
beziehungsweise. Dies macht den code mehr selbst dokumentieren.<h:dataTable>
,DataModel<E>
und@ViewScoped
.Können Sie die f:Attribut-tag, um Midi-Daten zu den ValueChangeListener:
Wenn wir annehmen, questionId ist eine ganze Zahl, dann erhalten Sie die Daten auf folgende Weise: