这是一个很小的问题,平时工做中容易忽视,今天在作一个需求,须要利用ajax想后台传递两个数组,切两个数组有可能为空的状况。这里遇到了两个问题:1.ajax传递数组后台接收不了,2.当传递数组为空的时候系统空指针。javascript
出现问题的1的缘由是由于ajax的解析数组传到后台的时候为其参数名多加了一个[],其实咱们在后台节后参数的时候在数组名后面加上[]也是能够的,可是这样作不妥。以下代码能够在ajax中加入traditional: true,这个就能够了,后台就能够正常接收数组。java
$.ajax({ type: "POST", dataType: "json", traditional: true, data: { id : data, deleteOrg : deleteArray, insertOrg : insertArray, }, });
出现问题2是由于ajax向后台传递参数的时候若是数组为空会默认舍弃这个字段。解决这个问题能够在后台springmvc接收逇时候解决。以下代码设置required=false便可,当传递数组为空的时候对应字段为null。ajax
@RequestParam(value="deleteOrg", required=false) List<String> deleteOrg @RequestParam(value="insertOrg", required=false) List<String> insertOrg