使用jQuery的$.ajax()方法进行异步交互时,如果传递的数据有数组(例如传输checkbox数据),Action中经常会接受不到数据。
此时应该注意一下data中数组的写法,例如:
//组合成js数组
var arrUserName=$.map($(".chk_sUserName:checked"),function(n){
return $(n).val();
});
$.ajax({
url:"DeviceRebootBatch",
cache:false,
dataType:"json",
type :"POST",
data:$.param({
arrUserName:arrUserName
},true),
success:function(data){
alert(data.info);
}
});
这样Action中的arrUserName就可以接收到数据了。
如果不使用$.param()封装,则传到后台的key是"arrUserName[]",可以使用request.getParameterValues("arrUserName[]")获取到数据