IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[html:radio] Probleme avec l'utilisation de radio button dans des listes


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 113
    Points : 64
    Points
    64
    Par défaut [html:radio] Probleme avec l'utilisation de radio button dans des listes
    Bonjour,

    J'essaie d'utiliser des radio buttons dans un questionnaire ou les questions posees (QCM) s'affichent sur ma page de manniere dynamique.

    Pour cela, j'effectue une boucle sur chacune de mes questions dans ma jsp avec une <logic:iterate>. Dans cette boucle, j'affiche ma question et je fait une seconde boucle pour afficher les n <html:radio> correspondants aux reponses possibles à ma question.

    J'ai donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <logic:iterate name="questionnaire" property="questions" id="question">
      <bean:write name="question" property="libelle"/>
      <logic:iterate name="question" property="reponsesPossibles" id="reponsePossible">
        <html:radio name="question" property="reponse"
    value="<%=reponsePossible.toString()%>"/>
      </logic:iterate>
    </logic:iterate>
    Normalement, cete methode me permet de retrouver la valeur de la reponse selectionnee par l'utilisateur dans la propriete "reponse" de chacun de mes beans "question".

    Le probleme c'est que le code html comilé est alors le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="radio" name="reponse" value="xxx"/>
    Tous mes radio buttons ont donc le meme nom et sont donc liés au meme groupe.

    Comment faire alors pour que l'attribut 'name' soit different pour chaque question de mon questionnaire ?

    Merci.

  2. #2
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Il faut utiliser html:collection et les listes indexées.

    Un truc du genre (à vérifier):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html:collection name="questionnaire" property="questions" id="question" indexed="true">
      <bean:write name="question" property="libelle"/>
      <logic:iterate name="question" property="reponsesPossibles" id="reponsePossible">
        <html:radio name="question" property="reponse" value="<%=reponsePossible.toString()%>"/>
      </logic:iterate>
    </html:collection>
    Pour récupérer les réponses dans ton action ensuite il faut ajouter des méthodes dans le form associé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    getQuestion(int i){
     
        return this.questions(i);
    }
     
    setQuestion(String question){
     
        this.questions(i) = question;
    }
    qui vont construire ta collection "questions" à partir des éléments "question"

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 113
    Points : 64
    Points
    64
    Par défaut
    Merci mais le tag html:collection n'existe pas (en tout cas, pas dans ma version de taglibs). Est-ce un nouveau tag de Struts ?

    Je ne comprend pas bien en quoi cela modifierait l'attribut "name" de mes radio-buttons...

  4. #4
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Désolé j'ai posté de mémoire.
    L'idée est d'utiliser la propriété indexed="true" qui tranforme le nom de ton bouton radio name en name[i].
    Si je retrouve quel est le tag qui a cette proprieté je reviens.

  5. #5
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Voilà j'ai retrouvé, le indexed est dans ta balise radio tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:iterate name="questionnaire" property="questions" id="question">
      <bean:write name="question" property="libelle"/>
      <logic:iterate name="question" property="reponsesPossibles" id="reponsePossible">
        <html:radio name="question" property="reponse" value="<%=reponsePossible.toString()%>" indexed="true"/>
      </logic:iterate>
    </logic:iterate>
    par contre j'ai un doute sur la numérotation car tu as 2 iterate imbriqués.
    normalement ce sera numéroté par rapport aux questions, c'est ce que tu veux.
    Important : dans ton form tu dois ajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Question getQuestion(int i) {
        return (Question) questions.get(i);
    }
     
    public void setQuestion(int i, Question question) {
        this.questions.set(i,question);
    }
    cela permet à Struts de reconnaitre remplir ta collection de questions.
    Celle ci doit être initialisée dans le form. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List questions = new ArrayList();

  6. #6
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    ca ne marche pas

Discussions similaires

  1. [1.x] Probleme avec l'utilisation d'un components dans le layout
    Par introdisco dans le forum Symfony
    Réponses: 3
    Dernier message: 01/02/2011, 02h20
  2. probleme avec l'utilisation d'un bean dans une jsp.
    Par thaundeadboss dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 15/07/2009, 01h00
  3. Réponses: 3
    Dernier message: 29/05/2007, 20h37
  4. [DOM] Probleme de selection sur un radio généré avec le dom
    Par Oreily dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2006, 10h04
  5. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo