JSF - le passage d'un paramètre valuechangelistener
J'ai un petit radiobutton comme ceci :
<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>
Et mon auditeur est comme ça :
public void changeanswer(ValueChangeEvent vcEvent) {
System.out.println("comeon= " + vcEvent.getOldValue());
System.out.println("comeon= " + vcEvent.getNewValue());}
Je voudrais passer un paramètre à la changeanswer méthode.Par exemple, j'ai envie de passer à la questionid à la changeanswer fonction. J'ai besoin de faire quelques arrangements.
Comment puis-je le faire?
Beaucoup beaucoup beaucoup merci d'avance.
Brad - la Recrue..
OriginalL'auteur Tim Tuckle | 2010-10-17
Vous devez vous connecter pour publier un commentaire.
De voir comment les valeurs des composants sont liés, je parie que c'est à l'intérieur d'une datatable. Si c'est effectivement le cas, vous pouvez utiliser
DataModel#getRowData()
pour obtenir la ligne actuelle. Ajouter unDataModel
propriété de laTestService
bean comme suit:et modifier l'affichage comme suit:
Cela dit, je vous suggère d'utiliser plus raisonnable des noms de variables que
TestService
,test
etchange()
, commeQuestionaire
,question
etchangeAnswer()
respectivement. Cela rend le code plus d'auto-documentation.Vous êtes les bienvenus.
Cela a été TRÈS TRÈS utile BaluC! Merci beaucoup! 🙂 Je ne savais pas qu'il existe quelque chose comme DataModel classe!!! C'est TELLEMENT utile! +1 pour Brad question.
vous êtes les bienvenus. Vous pouvez trouver cet article utile: balusc.blogspot.com/2010/06/... Il contient un CRUD exemple en utilisant
<h:dataTable>
,DataModel<E>
et@ViewScoped
.C'est un bon poste! 🙂 Merci encore!
OriginalL'auteur BalusC
Vous pouvez utiliser le f:l'attribut de balise d'envoyer des données à l'ValueChangeListener:
Si nous supposons que questionId est un Entier, alors vous pouvez recevoir les données de la façon suivante:
OriginalL'auteur Donato Szilagyi