我正在使用JQuery的post()
,但是我的servlet没有看到我作为参数传递的数组。
我的javascript看起来像这样:
var myArray = ['1', '2'];
$.post('action.do', {"arrayData":myArray, "mode":"insert"});
在我的servlet中:
System.out.println(request.getParameterMap());
输出:
{模式=插入}
我也试过
$.post('action.do', {"arrayData[]":myArray, "mode":"insert"});
和
$.post('action.do', {"arrayData":$(myArray).serializeArray(), "mode":"insert"});
答案 0 :(得分:5)
我有这个问题。我只是通过在“arrayData”参数服务器端添加括号来解决它。在客户端:
$.post('action.do', {arrayData:myArray, mode:"insert"});
请注意,客户端arrayData
参数没有括号。
在服务器上:
String[] arrayData=request.getParameterValues("arrayData[]");
这对我有用!
答案 1 :(得分:0)
尝试使用
$.post('action.do', {"arrayData":myArray, "mode":"insert"});
并在服务器上
String[] arrayData=request.getParameterValues("arrayData");
答案 2 :(得分:0)
以下是我使用json2.js中的here将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
}
});