前台通过$.post或者$.ajax等像后台传递数组格式的数据,后台接收不到,一直报null
场景:前台通过$.post或者$.ajax等像后台传递数组格式的数据,后台接收不到,一直报null
分析:
①后台参数 和 前台参数没有对应
②前后台类型不一致
……
解决:
原因:②前后台类型不一致
是因为前台传值时使用的
let Ids=[];
Ids.push('1','2');
$("url",{"ids":Ids},function(){})
后台接收时使用的
@ResponseBody
@RequestMapping("url")
public int updateRoles(String ids){}
解决方法:前台传值时:
$("url",{"ids":Ids.toString()},function(){})//方式1
//或者
$("url",{"ids":JSON.stringify(Ids)},function(){})//方式2
后台接收时使用不变
@ResponseBody
@RequestMapping("url")
public int updateRoles(String ids){}
处理值时
// 如果传进来的是第2种"["43","44"]",则
// String replace1 = ids.replace("[", "");
// String replace2 = replace1.replace("]", "");
// String replace3 = replace2.replace("\"", "");
// String[] split = replace3.split(",");
// 如果是第1种"43,44"
String[] split = ids.split(",");
List<Long> roleIds = new ArrayList<>();
for (String s : split) {
roleIds.add(Long.valueOf(s));
}

浙公网安备 33010602011771号