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;
    }
 
}