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 :

récuperer la valeur d'un champ select (liste déroulante)


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut récuperer la valeur d'un champ select (liste déroulante)
    Bonjour;

    je remplie ma liste déroulante dans la page JSP comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html:form action="clientList.do">
    <logic:present name="clientListForm" property="groupes"  >
      <select  name="groupes" id="groupe">
         <option value="">(Choisissez)</option>
         <logic:iterate name="clientListForm" property="groupes" id="groupe">
             <option value="groupe.id"><bean:write name="groupe" property="libelle"/></option>
          </logic:iterate> 
      </select>
     
    </logic:present>
    </html:form>
    Je voudrais seulement avoir le bout de code me permettant de transmettre la valeur choisie dans ma liste vers l'action associé, en cliquant sur un boutton HTML. Merci beaucoup. Je sais que c'est trop facil mais je suis débutant.

  2. #2
    Expert confirmé

    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
    Par défaut
    Je t'ai déjà conseillé quant à l'utilisation de la liste déroulante avec Struts dans cette discussion.

    Pourquoi ne pas appliquer la solution indiquée ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut
    C'est qu'il fallait faire plaisir à mon chef de projet, et ça marche aussi comme ça pour le remplissage! est ce de cette manière je ne pourrai pas récupérer la valeur?

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 303
    Par défaut
    essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <html:select property="groupe">
    	<html:optionsCollection
    			property="listeGroupes" value="label" label="value"/>
    </html:select>
    groupe est une variable declarée avec son getters et setters dans ton actionform et c'est dedans que tu pourra recupérer la valeur selectionnée dans la liste déroulante.
    listeGroupes est une liste déclarée avec son getters et setters dans ton actionform. Cette liste devra etre intialisée avec des objets de type LabelValueBean qui contiennent les données de la liste déroulante.

  5. #5
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par bous_saad317
    C'est qu'il fallait faire plaisir à mon chef de projet, et ça marche aussi comme ça pour le remplissage! est ce de cette manière je ne pourrai pas récupérer la valeur?
    Pourquoi faire simple quand on peut faire compliqué ?
    Excuse-moi mais il est un peu tordu ton chef de projet.

    C'est quand même plus simple et plus propre de coder ceci (et surtout ça fonctionne comme sur des roulettes ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html:form action="clientList.do">
      <logic:present name="clientListForm" property="groupes">
        <html:select property="idGroupeSelecte">
          <html:option value="(Choisissez)"/>
          <html:optionsCollection property="groupes" value="id" label="libelle"/>
        </html:select>
      </logic:present>
    </html:form>
    Ceci est une solution "full Struts".

    Enfin, sinon, ce qui ne fonctionne pas dans ton code, c'est d'abord ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select  name="groupes" id="groupe">
    dans l'attribut name, il faut coder le nom de la propriété sélectée et non le nom de la collection.

    et ensuite ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="groupe.id">
    si tu affiches le source de ta jsp, tu verras dans value groupe.id et non la valeur de l'id.

    Tu dois donc pouvoir t'en sortir comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html:form action="clientList.do">
      <logic:present name="clientListForm" property="groupes"  >
        <select name="idGroupeSelecte">
           <option value="">(Choisissez)</option>
           <logic:iterate name="clientListForm" property="groupes" id="groupe">
               <option value="<bean:write name='groupe' property='id'/>">
                  <bean:write name="groupe" property="libelle"/>
               </option>
            </logic:iterate> 
        </select>
      </logic:present>
    </html:form>
    Mais c'est franchement moche.

    A toi de remplacer la propriété que j'ai nommé idGroupeSelecte par la propriété que tu as codé dans ton ActionForm avec getter et setter.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut
    Merci tout le monde.

    Je me vois contraints d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html:form action="clientList.do">
      <logic:present name="clientListForm" property="groupes"  >
        <select name="idGroupeSelecte">
           <option value="">(Choisissez)</option>
           <logic:iterate name="clientListForm" property="groupes" id="groupe">
               <option value="<bean:write name='groupe' property='id'/>">
                  <bean:write name="groupe" property="libelle"/>
               </option>
            </logic:iterate> 
        </select>
      </logic:present>
    </html:form>
    Qui est vraiment moche. Mais ce dont j'ai besoin maintenant c'est de récupérer la valeur sélectionner dans la liste dans l'action associée.

    J'utilise un lien pour m'envoyer à l'action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:link  styleClass="SubHead" action="clientList.do?do=listepargroupe"
                paramName="groupe" paramProperty="id" paramId="id">
         Afficher les clients
    </html:link>
    et dans mon action je récupère la valeur via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Integer id = Integer.valueOf(request.getParameter("id"));
    Mais je reçois toujours le dernier élément de la liste et non l'élément séléctionné.

    HELP!

  7. #7
    Expert confirmé

    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
    Par défaut
    Pour récupérer la valeur sélectionnée, il suffit de coder ceci dans l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ClientListForm clientListForm = (ClientListForm) form ;
    String idGroupeSelecte=clientListForm.getIdGroupeSelecte() ;

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut
    Bonjour tout le monde.
    Bon, cette fois j'ai mis le code que tu m'avais conseillé c_navy,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html:form action="clientList.do">
      <logic:present name="clientListForm" property="groupes">
        <html:select property="idg"  >
          <html:option value="(Choisissez)"/>
          <html:optionsCollection property="groupes" value="id" label="libelle"/>
        </html:select>
      </logic:present>
    </html:form>
    C'est beaucoup mieux. J'ai essayé le bout de code que tu m'as donné aussi pour l'action:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ClientListForm clientListForm = (ClientListForm) form;
    String idGroupeSelecte=clientListForm.getIdg();

    Mais je reçois la chaîne vide dans idGroupeSelecte!
    Que dois je faire?

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

Discussions similaires

  1. Comment récuperer la valeur d'un champ select ?
    Par krikete13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/05/2007, 00h29
  2. Réponses: 7
    Dernier message: 06/07/2006, 15h32
  3. Réponses: 1
    Dernier message: 19/03/2006, 20h52
  4. Réponses: 10
    Dernier message: 11/03/2006, 01h51
  5. Récuperer la valeur d'un champ d'un formulaire après onblur
    Par kerido dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/09/2005, 15h58

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