前台通过$.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)); }