(spring mvc)我想在使用$ .ajax()时发送数组但是在controller.java中没有参数的空指针Exception

时间:2018-02-16 03:49:12

标签: java jquery ajax jsp

选中了几个复选框 我想在使用$ .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";
}

1 个答案:

答案 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';

      }
  });