选中了几个复选框 我想在使用$ .ajax()时发送数组但是在controller.java中没有参数的空指针异常 我在jsp中附加了javascript的ajax部分和controller.java的一部分
//view part
var empno = $('input:checkbox[name="checkbox"]:checked');
var i;
var array = new Array();
for(i=0; i<empno.length; i++){
empnoyo = empno[i].getAttribute("id");//id='{EmpVO.EMPNO}';
array.push(empnoyo[i]);
}
alert('empnnoyo:'+empnoyo);
$.ajaxSettings.traditional = true;
$.ajax({
url:"/delete",
data: {array:array},
dataType: 'text',
processData: false,
contentType: false,
type: 'POST',
success: function(result){
if(result==1)
alert('delete complete');
location.href='/index';
}
});
}
//controller part
@RequestMapping(value="/delete")
public String delete(int[] empno) throws Exception{
int i=0;
System.out.println("delete arr:"+empno[i]);
for(i=0; i<empno.length; i++) {
service.remove(empno[i]);
}
return "redirect:index";
}
答案 0 :(得分:1)
删除processData和contentType,并将{array:array}
更改为{empno:array}
processData和contentType事物仅对FormData和Binary类型非常有用。
您的服务器端代码需要参数empno
而不是array
$.ajax({
url:"/delete",
data: {empno:array},
dataType: 'text',
type: 'POST',
success: function(result){
if(result==1)
alert('delete complete');
location.href='/index';
}
});