博主起初用这种方法是不行的
let userId = [...];
$.post(baseUrl + "/user/manageUserDel.action", {userId: userId}, function(result) {
$('#editUserFormModal').modal('hide');
if (result.del == true) {
$("#msgTitle").html("Success");
$("#msgBody").html("删除成功");
$("#msgModal").modal();
location.reload();
} else {
$("#msgTitle").html("Failed");
$("#msgBody").html("删除失败");
$("#msgModal").modal();
}
},"json");
上面这样后台怎么接收都是null, 所以要使用下面的方法, 添加一个属性, traditional: true;
1、前台jsp中数组变量:
var checkedData = [];//前台变量1
2、在ajax中设置该属性:
traditional: true,//传数组进后台需要设置该属性1
Ajax代码示例:
$.ajax({
url : URL_Business_QFCJPage,
data : {
"checkedData" : checkedData
},
dataType : 'json',
type : "post",
traditional: true,//属性在这里设置
success : function(message) {
//回调函数代码省略
},
waitMsg : '正在处理数据....'
});12345678910111213
3、后台Servlet中这样获取:
String[] s = request.getParameterValues("checkedData");//获取数组使用该函数1
Servlet代码示例:
package com.***;
@Controller
public class QFCJPageController {
@RequestMapping("/business/QFCJPage")
@ResponseBody
public void CJ(HttpServletRequest request, HttpServletResponse response) throws IOException {
//如果数组有中文,注意设置编码,防止接收数据乱码。
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String[] s = request.getParameterValues("checkedData");//"s"为获取的前台数组
}
}