前端js代码:
var addLabels = $('#added_labels input:checkbox'); var labelsArr = [],frwybs = '325614552566x'; $.each(addLabels,function (i,obj) { labelsArr.push(obj.value); }) $.ajax({ url:'/corporatePortrait/saveBusinessLabelRelationship', type:'post', data:{labelsArr:labelsArr,frwybs:frwybs}, success: function (res) { } });后台代码:
@RequestMapping(value = "/saveBusinessLabelRelationship",method = RequestMethod.POST) @ResponseBody public AjaxResult saveBusinessLabelRelationship(@RequestParam(value="labelsArr",required=false) String[] labelsArr, @RequestParam(value="frwybs",required=false) String frwybs){ ........... .......... }其中参数 labelsArr 后台无法接收到,显示为 null
解决方法:
1. 发送请求时,添加 traditional 属性,并设置为true 即:traditional: true, (traditional 默认为 false 当为true阻止深度序列化,用于传递数组类型参数)。 接收成功!
2. 后台更改接收方式为:
public AjaxResult saveBusinessLabelRelationship(@RequestParam(value="labelsArr[]",required=false) List<String> labelsArr, String frwybs){} 也可接收成功!