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 2 Java Discussion :

Comment récupérer les valeurs d'un multi-select combo dans Struts 2


Sujet :

Struts 2 Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 34
    Points : 29
    Points
    29
    Par défaut Comment récupérer les valeurs d'un multi-select combo dans Struts 2
    Bonjour,

    J'ai une liste déroulante à séléction multiple dans mon application. J'utilise la composant ui-multisection de JQuery. lorsque je sélectionne plusieurs valeurs et que je les tests dans ma classe d'action, seule la dernière valeur sélectionnée est valorisée. que dois-je faire pour que toutes les valeurs soient correctement valorisée ?

    Fichier JSP :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <link rel="stylesheet"
        href="<s:url value="/css/jquery.multiselect.css"/>" type="text/css" />
    <link rel="stylesheet"
        href="<s:url value="/css/jquery.multiselect.filter.css"/>"
        type="text/css" />
    <link rel="stylesheet"
        href="<s:url value="/css/themes/base/jquery.ui.theme.css"/>"
        type="text/css" />
    <script type="text/javascript"
        src="<s:url value="/js/jquery-1.9.1.min.js" />"></script>
    <script type="text/javascript"
        src="<s:url value="/js/jquery-ui.min.js" />"></script>
    <script type="text/javascript"
        src="<s:url value="/js/jquery.multiselect.min.js" />"></script>
    <script type="text/javascript"
        src="<s:url value="/js/jquery.multiselect.filter.js" />"></script>
     
     
    <script language="javascript">
        $(function() {
     
            $("select").multiselect({
                multiple : true,
                selectedList : 4,
                noneSelectedText : 'Tous',
                height : 180
            });
     
            $("select").multiselect().multiselectfilter();
        });
    </script>
    <s:form id="idForm" action="testOMB.do" name="myForm">
     
        <div class="contentTable">
            <div class="tbl">
     
                <table width="100%">
                    <tr>
                        <td><s:select id="idCombo1" multiple="multiple"
                                list="listItems" name="listIdSelected"
                                value="listIdSelected" listKey="id" listValue="label"
                                emptyOption="true" /></td>
                    </tr>
                </table>
            </div>
        </div>
     
        <div class="bloc_action">
            <s:submit cssClass="btn_action" value="TEST OMB" />
        </div>
    </s:form>
    Fichier Java :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    package com.omb.controller.report;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.transaction.annotation.Isolation;
    import org.springframework.transaction.annotation.Propagation;
    import org.springframework.transaction.annotation.Transactional;
     
    import com.omb.ui.item.Item;
     
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.Preparable;
     
    @SuppressWarnings("serial")
    public class MyAction extends ActionSupport implements Preparable {
     
        Log log = LogFactory.getLog(MyAction.class);
     
        private List<Item> listItems = new ArrayList<String>();
        private List<String> listIdSelected = new ArrayList<String>();
     
        public void prepare() throws Exception {
            listItems.add(new Item("1", "Item 1"));
            listItems.add(new Item("2", "Item 2"));
            listItems.add(new Item("3", "Item 3"));
            listItems.add(new Item("4", "Item 4"));
        }
     
        @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, readOnly = true)
        public String testOMB() throws Exception {
            log.debug("listIdSelected = " + listIdSelected.size());
            return SUCCES;
        }
     
        public List<Item> getListItems() {
            return this.listItems;
        }
     
        public void setListItems(List<Item> listItems) {
            this.listItems = listItems;
        }
     
        public List<Integer> getListIdSelected() {
            return this.listIdSelected;
        }
     
        public void setListIdSelected(List<Integer> listIdSelected) {
            this.listIdSelected = listIdSelected;
        }
     
    }

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    J'ai la solution en faite c'est la stack qui n'était pas complète. Il faut ajouter l'intercepteur suivant : <interceptor-ref name="multiselect"/> et modifier le select comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <s:select id="idActivite" multiple="true" list="listActivitiesItems" name="listIdActivitySelected" value="listIdActivitySelected" listKey="id" listValue="label" emptyOption="true" />

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/06/2014, 13h07
  2. [FAQ] Les formulaires (partie 1) Comment récupérer les valeurs d'un select multiple ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 9
    Dernier message: 17/11/2013, 12h26
  3. Formulaire & Confirm : Comment récupérer les valeurs en javascript ?
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/11/2006, 19h21
  4. Réponses: 4
    Dernier message: 13/11/2006, 18h49
  5. Réponses: 11
    Dernier message: 19/06/2006, 14h51

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