前端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){}
也可接收成功!