[Struts-Layout] <layout:nestedCollection> Questions et réponses ?
Bonjour,
dans un formulaire j'ai besoin de poser une série de questions dont les réponses (boutons radios) peuvent être oui non ou bien plus de deux.
voici mes beans :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Question{
//Attributs
private int id;
private String questionLib;
private Vector<Answer> answers = new Vector<Answer>();
}
Answer {
//Attributs
private int id;
private String answerLib;
private int questionFk;
private String questionLib;
private int value;
} |
naturellement pour chaque classe j'ai tous les getters et setters de ces attributs et ils sont bien remplis avec ce que je veux dans l'action qui précède la jsp
dans ma jsp
j'ai le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <layout:cell >
<bean:message key="app.rural" />
<layout:space />
<layout:collection property="allQuestions" id="allQuestions" indexId="index" align="center">
<layout:collectionItem property="questionLib" />
<layout:nestedCollection property="answers" id="answers" indexId="index1">
<layout:collectionItem title="">
<layout:radio key="" property="allQuestions[${index}].answers[${index1}].value" value="1" layout="false"/>
</layout:collectionItem>
<layout:collectionItem property="allQuestions[${index}].answers[${index1}].answerLib" />
</layout:nestedCollection>
</layout:collection>
</layout:cell>
<layout:space /> |
où allQuestions est un vecteur de Question
deux choses ne fonctionnent pas : les radios buttons s'affichent mais ils ne sont pas reliés entre eux Et puis les answerLibs (libellés des réponses possibles) ne s'affichent pas.
si je change "allQuestions[${index}].answers[${index1}].answerLib" pour "answerLib"
et j'ai l'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
javax.servlet.jsp.JspException: No method to get the property answerLib of Question {
questionId=1
questionLib=Votre jardin est-il traité avec des pesticides (par exemple, produits insecticides, anti-fourmis, anti-pucerons ou fongicides)
answers=[Answer {
answerId=1
answerLib=Jamais
questionFk=1
questionLib=Votre jardin est-il traité avec des pesticides (par exemple, produits insecticides, anti-fourmis, anti-pucerons ou fongicides)
value=0
}, Answer {
answerId=2
answerLib=Occasionnellement
questionFk=1
questionLib=Votre jardin est-il traité avec des pesticides (par exemple, produits insecticides, anti-fourmis, anti-pucerons ou fongicides)
value=0
}, Answer {
answerId=3
answerLib=Régulièrement
questionFk=1
questionLib=Votre jardin est-il traité avec des pesticides (par exemple, produits insecticides, anti-fourmis, anti-pucerons ou fongicides)
value=0
}]
} (fr.mnhn.opj.bo.Question) |
je ne comprends pas, et je ne peux pas faire dans Question un getter de answerLib puisqu'il y a plusieur réponses pour une question?
Qu'en pensez vous?
Olivier