在使用ajax向后台传递对象参数时,发现一直报错无法传到action中的对象,从网上搜到的答案说是因为jQuery会默认将data参数数组以a[b]的格式向后台传递,而后台需要的格式是a.b类型的,所以jQuery传递时需要变换格式,以url中的参数形式即(a.b=xxx&a.c=xxx)后台可以正常收到,可以如下方式变换:
/* *param:ajax里的参数数组 *key:后台的VO对象 */ function parseParam(param, key) { var paramStr = ""; if (param instanceof String || param instanceof Number || param instanceof Boolean) { paramStr += "&" + key + "=" + param; } else { $.each(param, function(i) { var k = key == null ? i : key + (param instanceof Array ? "[" + i + "]" : "." + i); paramStr += '&' + parseParam(this, k); }); } return paramStr.substr(1); }