$.post()将javascript数组添加到Servlet

$.post()将javascript数组添加到Servlet,java,jquery,ajax,Java,Jquery,Ajax,我正在使用JQuery的post(),但是我的servlet没有看到作为参数传递的数组 我的javascript如下所示: var myArray = ['1', '2']; $.post('action.do', {"arrayData":myArray, "mode":"insert"}); 在我的servlet中: System.out.println(request.getParameterMap()); 哪些产出: {mode=insert} 我也试过了 $.post('actio

我正在使用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, "mode":"insert"});
和在服务器上

String[] arrayData=request.getParameterValues("arrayData");

下面是我如何使用from将json传递到servlet。在servlet中,您可以使用,或者自动地将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
    }
});

我有这个问题。我只是通过在服务器端的“arrayData”参数中添加括号来解决这个问题。在客户端:

$.post('action.do', {arrayData:myArray, mode:"insert"});
请注意,在客户端
arrayData
参数没有括号

在服务器上:

String[] arrayData=request.getParameterValues("arrayData[]");

这对我有用

要使其工作,参数映射将打印类似于
{mode=insert,arrayData=java.lang的内容。String@3sD39}
或类似内容。servlet根本不接收
arrayData
参数,即字符串、字符串数组或任何其他类型的对象。
String[] arrayData=request.getParameterValues("arrayData[]");