选中多个复选框 我想在使用$.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";
}
最佳答案
删除 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';
}
});
关于java - (spring mvc)我想在使用 $.ajax() 时发送数组,但在controller.java中存在没有参数的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48819786/