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