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 :

Liste et sélection d'un élément via un radio bouton


Sujet :

Struts 1 Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Liste et sélection d'un élément via un radio bouton
    Bonjour à tous,

    voici mon problème.
    J'ai une liste de films en requete. Un film est composé d'un id, d'un titre et d'un prix.

    Je souhaiterais afficher cette liste de films sous forme de tableaux dont la première colonne serait composée de radio boutons (un par ligne évidemment).

    L'utilisateur dit choisir un et un seul film parmi la liste via les radio-boutons et cliquer ensuite sur valider.

    Quelle est la meilleure façon de faire ça?
    Passer par la taglib nested?
    Quelle que soit la solution proposée, pourriez vous me donner le code du tag radio à écrire, j'avoue avoir un peu de mal avec ça.

    Merci beaucoup.

    Xavier

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <logic:iterate name="uneCollection" id="item">
       <html:radio name="nomDuFormBean" property="idSelected" value="${item.id}"/>
       <bean:write name="item" property="titre"/>
       <bean:write name="item" property="prix"/>
    </logic:iterate>
    Pour que cela fonctionne, il faut mettre le tag logic:iterate dans un tag html:form et définir la propriété idSelected dans l'ActionForm avec getter et setter.

    Ainsi, dans l'Action qui s'exécute au submit du formulaire, la propriété idSelected de l'ActionForm aura pour valeur l'id du film coché.

    L'EL ${item.id} utilisée dans l'attribut value du tag html:radio ne fonctionnera que si tu es en J2EE 1.4 ou plus.
    Sinon, il faut utiliser le tag html-el:radio.

  3. #3
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    J'essaie de faire la même chose, mais j'avoue ne pas y arriver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <logic:present name="createModuleForm" property="scripts">
    	<logic:iterate name="scripts" id="item">
    	   	<html:radio name="createModuleForm" property="script" value="${item.name}"/>
    		<bean:write name="item" property="name"/>
    	</logic:iterate>
    </logic:present>
    Avec
    "scripts" la propriété du formulaire qui contient une liste (avec get et set) (liste de Script => Scripts)
    "script" la valeur de la propriété qui sera la valeur du bouton radio sélectionné
    "name" un champ de l'objet Script
    "item" => je sais pas à quoi ça correspond?

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    La variable item référence l'objet courant ( de type Script dans ton cas ) de la collection. C'est la variable que tu précises dans l'attribut id du tag logic:iterate.

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    En fait, tu as fait une erreur dans ton code.
    scripts étant la propriété du formulaire contenant la liste d'objet de type Script, il faut donc mettre scripts dans l'attribut property du tag logic:iterate et non dans l'attribut name :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:present name="createModuleForm" property="scripts">
       <logic:iterate name="createModuleForm"  property="scripts" id="item">
          <html:radio name="createModuleForm" property="script" value="${item.name}"/>
          <bean:write name="item" property="name"/>
       </logic:iterate>
    </logic:present>

  6. #6
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    en effet, c'est merveilleux ça marche, merci ^_^

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour info, pour éviter d'avoir à coder une EL dans l'attribut value, on peut utiliser l'attribut idName du tag html:radio comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:present name="createModuleForm" property="scripts">
       <logic:iterate name="createModuleForm"  property="scripts" id="item">
          <html:radio name="createModuleForm" property="script" idName="item" value="name"/>
          <bean:write name="item" property="name"/>
       </logic:iterate>
    </logic:present>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/01/2010, 15h29
  2. Réponses: 4
    Dernier message: 13/08/2009, 18h42
  3. [MySQL] Ajouter élément dans liste de sélection
    Par nadia lydia dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/06/2009, 20h42
  4. [VBA] Sélection d'un élément d'une liste
    Par JulienTough dans le forum VBA Access
    Réponses: 11
    Dernier message: 09/05/2007, 12h08
  5. [VBA] sélection d'un élément dans une liste
    Par menguygw dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2006, 12h18

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