[英]$.post() a javascript array to Servlet
我正在使用JQuery的post()
,但是我的servlet看不到我作为参数传递的数组。
我的JavaScript看起来像这样:
var myArray = ['1', '2'];
$.post('action.do', {"arrayData":myArray, "mode":"insert"});
在我的servlet中:
System.out.println(request.getParameterMap());
输出:
{mode = insert}
我也尝试过
$.post('action.do', {"arrayData[]":myArray, "mode":"insert"});
和
$.post('action.do', {"arrayData":$(myArray).serializeArray(), "mode":"insert"});
我有这个问题。 我通过在服务器端“ arrayData”参数中添加方括号来解决此问题。 在客户端上:
$.post('action.do', {arrayData:myArray, mode:"insert"});
请注意,在客户端的arrayData
参数上没有括号。
在服务器上:
String[] arrayData=request.getParameterValues("arrayData[]");
这对我有用!
尝试使用
$.post('action.do', {"arrayData":myArray, "mode":"insert"});
和在服务器上
String[] arrayData=request.getParameterValues("arrayData");
这是我使用来自here的 json2.js将json传递到servlet的方法。 然后,您可以在servlet中使用gson或jackson自动将json自动转换为合适的Java类的实例。
var jsonData = $("#myform").toObject();
var strJson = JSON.stringify(jsonData);
$.ajax({
cache:false,
type: 'POST',
url: myUrl,
data:strJson,
contentType: "application/json",
success: function(data) {
//mySuccessHanlder
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.