使用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[]")获取到数据