我的jsp页面中利用了Struts2的<s:select>标签,而且又是多选,如果直接用form表单提交就会自动封装成一个数据传递到后台,但是如果是ajax提交就不行,后台获取到的数组值为null。
<s:select name="roleIds" id="roleIds"
multiple="true" size="5"
list="#roleList" listKey="id" listValue="name">
</s:select>
于是上网查了些资料,只要在ajax的属性中添加traditional:true就行了,
$.ajax({
type:"POST",
url:url,
traditional:true,
dataType:'json',
data:{
loginName:$("#loginName1").val(),
name:$("#name11").val(),
gender:$("input[name='gender']:checked").val(),
phoneNumber:$("#phoneNumber").val(),
email:$("#email").val(),
description:$("#description").val(),
roleIds:$("#roleIds").val(),
},
success:function(data){
if(data.state == "success"){
closeWindow();
$.messager.show({
title:'友情提示',
msg:'操作成功'
});
searchForm();
}else{
$.messager.show({
title:'友情提示',
msg:'操作失败'
});
}
},
error:function(){
$.messager.show({
title:'友情提示',
msg:'操作失败'
});
}
});