ajax向服务器提交数组参数多了一个中括号
String[] values = request.getParameterValues(key);
$.post({}) 直接传递数组会导致如下情况
// 使用一下js会导致如图这种情况var ids = [];$('input[name="ids"]:checked').each(function(){ids.push($(this).val());})$.post("/xxxx/list.html", {name: name,ids:ids}, function (data) {});
本来参数ids集合的名字是ids 但是通过debug请求发现request向后台传递的集合参数已经变成了 ids[] ,多了一个中括号,
这样在后台通过 String[] values = request.getParameterValues(“ids”)获取集合参数是获取不到的,但是如果转换为json字符串的话后台这个方法是无法转换为values数组的,由于多个方法共同使用这个方法,在外边封装了一层,所以无法更改,只能更改前端参数位置


traditional:true 使用ajax提交方式 请求是加上这个参数, 后台可以获取到值并且ids不会在更改为ids[]
var ids = [];$('input[name="ids"]:checked').each(function(){ids.push($(this).val());})$.ajax({url:"/aaaa/list?name+="+name,data:{"ids":ids},type:true,traditional:true,success:function () {bootbox.alert("成功").click(function () {console.log("sssss");});}})














