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écupérer le label et la value d'une combo


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut Récupérer le label et la value d'une combo
    Bonjour,

    J'ai un formulaire dans lequel j'ai une combo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="idBat">
           <html:options collection="lesBats" property="unIdBat" labelProperty="description"/>
    </html:select>
    La combo affiche un label different de la valeur qu'elle renvoie lorsqu'on valide le formulaire...Tout cela marche trés bien. Cependant, actuellement je n'arrive à recuperer dans ma classe action qui suit la validation du formulaire que le "unIdBat" alors que j'aimerais pouvoir récuperer à la fois le label et à la fois la value. Càd dans mon cas, le "unIdBat" et le "description".

    Comment faire ? Du javascript peut-être (mais si je peux éviter je préfère)?

    Merci d'avance.

    A+

  2. #2
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Regarde du coté du LabelValueBean.

    C'est un objet tout simple qui est juste un couple id, libellé. Il est facilement integrable dans une collection et est géré dans les html:options

    Fais une recherche tu devrait trouver ton bonheur.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Salut merci de ta réponse,


    J'ai regardé les LabelValueBean. Cela est pratique pour afficher un label et une valeur correspndante, mais mon probleme n'est pas la (ça ca marche impec)...
    Je voudrais récupérer une fois le formulaire validé, et donc dans ma classe Action, non seulement la valeur de l'élément sélectionné mais aussi le libellé...En somme :
    Je sélectionne dans ma combo l'element qui a pour libellé "La voiture rouge" et comme identifiant derriere le libelle "voitR". Je valide le formulaire et ensuite je veux récuperer "voitR" ET "La voiture rouge". Récuperer "voitR" ça marche sans pbml mais je ne sais pas comment récupérer "La voiture rouge"...

    A+

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir TraPpeur,

    ton probleme ne vient pas de Struts mais du HTML, quand tu postes une valeur d'un select HTML tu n'as que la valeur. Pour avoir le libelle, deux solutions :

    1. tu construis un champs cache input hidden inputHiddenLabelSelected qui se met a jour en javascript en fonction de ta valeur selectionne dans ton select. Autrement dit sur le onchange de ton select tu appeles une fonction javascript qui recupere le label (de la valeur selectionne) et qui met a jour la valeur du input hidden inputHiddenLabelSelected . Apres dans ton action struts tu recuperes dans ton formulaire inputHiddenLabelSelected (il faut donc aussi declarer un getter getInputHiddenLabelSelected, dans ton formulaire Struts).
    Cette solution marche bien mais elle devient penible si tu as beaucopup de select.

    2. Tu recuperes la valeur dans ton action, tu recharge ta donnee (en base) pour recuperer ton libelle. En ce qui me concerne, c'est ce que je fais, car aujourd'hui les performances d'une base sont tres correct.

    Angelo

  5. #5
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Je ne comprend pas ton probleme.

    Tu utilises Struts. Ta collection lesBats se trouve dans le formulaire et donc en session.

    Cela veut donc dire que tu récupères idBat lors de la validation de ton formulaire, mais que lesBats sont toujours renseignés. Il te suffit donc de parcourir ta collection pour récupérer ton labelValueBean.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup pour vos réponses...

    "Ta collection lesBats se trouve dans le formulaire et donc en session." --> en fait non, lesBats n'est pas en session mais en request puisque il est inséré avec un :
    request.setAttribute("lesBats",maHashMap)

    Ou sinon, comment dois-je faire dans ma JSP du formulaire pour remettre en request "lesBats" ?

    Si ce n'est pas possible, je vais utiliser du javascript je pense....

  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
    Ben, dans ton Action qui récupère l'idBat sélecté, soit tu mets ta collection lesBats en session pour pouvoir la parcourir, soit tu fais un select sur la table de la BD avec une clause where pour récupérer le libellé qui correspond à la valeur de l'idBat sélecté.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par c_nvy
    Ben, dans ton Action qui récupère l'idBat sélecté, soit tu mets ta collection lesBats en session pour pouvoir la parcourir, soit tu fais un select sur la table de la BD avec une clause where pour récupérer le libellé qui correspond à la valeur de l'idBat sélecté.
    Oué c'est ce que j'ai fini par faire..bien que je voulais éviter de requeter à nouveau le serveur...

    Merci a vous tous

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

Discussions similaires

  1. Label qui ne change qu'une seule fois ...
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/04/2006, 20h08
  2. Réponses: 4
    Dernier message: 18/01/2006, 12h21
  3. [C#] WinForm.Label : connaitre la taille d'une liste de char
    Par lord_paco dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/11/2004, 00h04
  4. Réponses: 2
    Dernier message: 05/10/2004, 23h43

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