SelectOneRadio + selectItems + Converter
Bonjour,
Désolé pour le titre peu parlant mais je n'ai rien trouvé de plus explicite.
Je dois réaliser un questionnaire. Pour chaque question on peut avoir plusieurs réponses. Il arrive que deux questions aient des réponses dont les libelles sont identiques.
J'ai une datatable ou sur chaque ligne il y a une question dans la premiere colonnes et les réponses possibles dans la seconde colonne.
Ci-dessous ma page
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<h:dataTable value="#{monbean.qcms}" var="qcm" >
<h:column >
<f:facet name="header">
<h:outputText value="Question"/>
</f:facet>
<h:outputText value="#{qcm.nameQuestion}"/>
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Answers"/>
</f:facet>
<h:selectOneRadio required="false" layout="pageDirection" value="#{qcm.answerSelected}">
<f:selectItems value="#{qcm.lstAnswers}"/>
</h:selectOneRadio>
</h:column> |
Tel quel, ca ne marche car il n'y a pas de converter. Mon probleme est que pour écrire la méthode getAsObject du converter,
Code:
1 2
|
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) { |
j'ai besoin de connaitre le champ "id" de mon objet Answer. Or JSF ne me renvoie dans "arg2" que le texte affiché dans le bouton radio.
Ma question: Dans le tag selectitems,
Code:
1 2
|
<f:selectItems value="#{qcm.lstAnswers}"/> |
peut on préciser le "itemValue"? , comme on le fait pour selectItem? Mon objectif est de pouvoir récupérer dans mon converter l'identifiant de la réponse choisie (pas le libelé affiché).
Merci de votre aide.