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 :

Select multiple


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Par défaut Select multiple
    Salut,

    J'ai besoin d'utiliser une liste à choix multiple : <html: select multiple="true" ...

    Je cherche comment récupérer les valeurs des tous les éléments que j'ai sélectionner, en effet pour l'instant je ne récupère que le 1er.

    Merci d'avance

    Loïc




    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 407
    Par défaut
    tu récupère avec une servlet ?

  3. #3
    Membre émérite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    Vas voir du coté de "option" et "options" dans la taglib html
    Ton champ doit etre représenté par une collection ds ton bean.

    @+

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 33
    Par défaut Utilise...
    Soit un tableau.

    Soit une boucle.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Par défaut
    merci bcp

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut
    j'ai le même problème, mais je doit m'embrouiller dans les paramètres:
    mon Form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /** Users to associate to the project */
    private String[] usersToAdd;
     
    /** Give the usersToAdd list. */
    public String[] getUsersToAdd()  { return usersToAdd; }
     
    /** Set the users to add list. */
    public void setUsersToAdd(String[] usersToAdd) { this.usersToAdd = usersToAdd; }
     
    /** Give the full users list. */
    public Users getAllUsers() {...}
    ma jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="usersToAdd" multiple="true" size="20">
    	<html:optionsCollection name="allUsers"/>
    </html:select>

  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
    L'objet Users est-il bien une collection ? De quel classe hérite-t'il ?

    Sinon, comme allUsers est une propriété de l'ActionForm, il faut remplacer l'attribut name par l'attribut property dans le tag html:optionsCollection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="usersToAdd" multiple="true" size="20">
    	<html:optionsCollection property="allUsers"/>
    </html:select>

  8. #8
    Membre expérimenté Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut
    oki merci, c'est nikel! La collection était un TreeSet.
    voici la solution avec les bonnes valeur pour les attributs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="usersToAdd" multiple="true" size="20">
    	<html:optionsCollection property="allUsers" label="name" value="path"/>
    </html:select>
    avec "name" le label à afficher et "path" pour la valeur retenu pour le tableau de String.

  9. #9
    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
    Justemement, j'allais préciser qu'il fallait obligatoirement ajouter les attributs value et label sauf si allUsers était une collection de LabelValueBean.

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Par défaut
    Je me permet de relancer le thread plutot que d'en créer un autre sur la récupération des selects d'une liste déroulante multichoix.

    Mon souci est que je ne parviens pas à récupérer les multi choix. J'arrive à récupérer que le premier des multichoix et ce soit sous forme d''id" soit sous forme bizarre :[Ljava.lang.String;@1cf3710

    Voici mon bout de code de ma page jsp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    				<td ROWSPAN="2"><html:select property="codeCa" multiple="true" size="4" >
    					<html:options collection="ca" labelProperty="libelle" property="id"/>
    				</html:select></td>
    Que j'essaie de récupérer dans ma page action:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    	public ActionForward executeSpecificAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
     
    		//Récupération des valeurs du formulaire
     
    		String CAMPAGNE = request.getParameter("codeCa");
    		System.out.print("CAMPAGNE :" + CAMPAGNE);	
     
    		BusinessService service = null;
     
        	Collection campagne = (Collection)service.getOutput(InitPortefeuilleBusinessService.OUT_CAMPAGNES);
        	// On fait un getsession() car on a besoin de récupérer des objets JAVA dans nos pages .jsp
     
    		request.getSession().setAttribute("ca", campagne);
        	// On fait un getsession() car on a besoin de récupérer des objets JAVA dans nos pages .jsp
        	request.getSession().setAttribute("dra", directiondesagences);
    		return mapping.findForward("success");
    	}
    request.getParameter me sort que le string de la première sélection de la liste déroulante multichoix et ce, il me retourne l'id et non le libelle (12:59:16,056 INFO [STDOUT] CAMPAGNE :52)
    et si je fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		String[] CAMPAGNE = request.getParameterValues("codeCa");
    		System.out.print("CAMPAGNE :" + CAMPAGNE);
    Il me sort : 13:11:49,416 INFO [STDOUT] CAMPAGNE :[Ljava.lang.String;@1cf3710

    Merci pour vos aides.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut
    Bonjour tout le monde,

    Je déterre le sujet car j'ai le même problème que nos amis ci-dessus : je n'arrive à récupérer dans mon action Struts que le premier élément sélectionné

    J'ai lu ce qui était fait plus haut, j'en ai tenu compte et voici mon code actuel :

    Dans la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="tableauProduits" multiple="true" size="3" tabindex="7" >
     <html:optionsCollection property="listeProduits" label="libelle" value="code" />
    </html:select>
    Dans le form bean, où ProduitsListeOption est une enum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private String[] tableauProduits;
    private List<ProduitsListeOption> listeProduits;
     
    public String[] getTableauProduits() {return tableauProduits;}
    public void setTableauProduits(String[] tableauProduits) {this.tableauProduits = tableauProduits;}
     
    public List<ProduitsListeOption> getListeProduits() {return listeProduits;}
    public void setListeProduits(List<ProduitsListeOption> listeProduits) {this.listeProduits = listeProduits;}
     
    public void reset(ActionMapping mapping, HttpServletRequest request) {
     this.tableauProduits = new String[0];
    }
    Dans l'action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CircularisationForm circulForm = (CircularisationForm) form;
    String[] tableauProduits = circulForm.getTableauProduits();
    Dans le struts-config.xml, le scope de l'action est bien à request.

    Si quelqu'un veut bien me donner son avis sur ce qui ne va pas dans mon code, je suis preneur

  12. #12
    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 pense que ton problème vient du fait que tu n'as pas fixé la taille du tableau de String tableauProduits.

    Donc, soit cette taille est toujours fixe et dans ce cas, tu la définis dans l'ActionForm.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String[] tableauProduits=new String[10];
    Soit tu l'initialises dans l'Action qui initialise la List listeProduits comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CircularisationForm circulForm = (CircularisationForm) form;
    circulForm.setTableauProduits(new String[listeProduits.size()]);
    Dans ce cas, le scope du form-bean doit être égal à session dans le mapping de l'Action qui initialise la List listeProduits ainsi que dans celui de l'Action qui s'exécute au submit du formulaire.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut
    Merci pour ta réponse
    J'ai testé la deuxième possibilité (fixer la taille du tableau dans l'action de préaffichage de la page de recherche + passer au scope session dans les action mappings d'affichage initial et de soumission du formulaire), mais ça ne marche toujours pas.

    J'ai oublié de préciser que le formulaire n'est pas soumis "directement", c'est fait par un appel Ajax synchrone avec une transformation XSL
    C'est important? J'imagine que oui (j'ai progressé dans mes investigations dans le code depuis mon post).

    Je vais être bon pour traiter ce select multiple en Javascript avant le xhr.open(), je le sens...

  14. #14
    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 VegitoDeGwada Voir le message
    J'ai testé la deuxième possibilité (fixer la taille du tableau dans l'action de préaffichage de la page de recherche + passer au scope session dans les action mappings d'affichage initial et de soumission du formulaire), mais ça ne marche toujours pas.
    Les deux actions sont bien liées au même form-bean CircularisationForm ?

    J'ai oublié de préciser que le formulaire n'est pas soumis "directement", c'est fait par un appel Ajax synchrone avec une transformation XSL
    C'est important? J'imagine que oui (j'ai progressé dans mes investigations dans le code depuis mon post).

    Je vais être bon pour traiter ce select multiple en Javascript avant le xhr.open(), je le sens...
    Je n'ai jamais utilisé Ajax.
    Si le problème vient de là, je ne vais malheureusement pas pouvoir t'aider.

    Tu devrais ouvrir un nouveau post car celui-ci ayant le tag Résolu, tu as peu de chance que d'autres te viennent en aide.

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Les deux actions sont bien liées au même form-bean CircularisationForm ?
    Oui oui, les deux actions sont liées au même form bean.

    Citation Envoyé par c_nvy Voir le message
    Je n'ai jamais utilisé Ajax.
    Si le problème vient de là, je ne vais malheureusement pas pouvoir t'aider.

    Tu devrais ouvrir un nouveau post car celui-ci ayant le tag Résolu, tu as peu de chance que d'autres te viennent en aide.
    Ok pour ouvrir un nouveau post, mais avant je vais chercher encore par-moi même et vérifier qu'il n'y a pas déjà un post sur le forum sur le sujet "select multiple, Struts et appel Ajax"

    Merci en tout cas
    Et je comprends mieux pourquoi personne à part toi n'a répondu en près de 2 semaines

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2005, 15h19
  2. select multiple sur plusieurs tables
    Par syl2095 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/12/2004, 15h48
  3. [VB6] sélection multiple de colonne dans excel grâce à VB
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/08/2004, 12h44
  4. <select multiple ...>
    Par ayobo dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 08h49
  5. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16

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