$ .post()一个到Servlet的javascript数组

时间:2021-02-26 13:21:23

I am using JQuery's post(), but my servlet doesn't see the array that I'm passing as a parameter.

我正在使用JQuery的post(),但是我的servlet没有看到我作为参数传递的数组。

My javascript looks like this:

我的javascript看起来像这样:

var myArray = ['1', '2'];
$.post('action.do', {"arrayData":myArray, "mode":"insert"});

In my servlet:

在我的servlet中:

System.out.println(request.getParameterMap());

which outputs:

哪个输出:

{mode=insert}

{模式=插入}

I've also tried

我也试过了

$.post('action.do', {"arrayData[]":myArray, "mode":"insert"});

and

$.post('action.do', {"arrayData":$(myArray).serializeArray(), "mode":"insert"});

3 个解决方案

#1


4  

I had this problem. I resolved it just by adding brackets to "arrayData" parameter server-side. On client:

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

$.post('action.do', {arrayData:myArray, mode:"insert"});

Please, note, on the client-side arrayData parameter is without brackets.

请注意,客户端arrayData参数没有括号。

On server:

在服务器上:

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

This worked for me!

这对我有用!

#2


0  

Try to use

尝试使用

$.post('action.do', {"arrayData":myArray, "mode":"insert"});

and on server

并在服务器上

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

#3


0  

Here is how I pass json to my servlet, using json2.js from here. In the servlet you can then use gson, or jackson to automatically convert you json to an instance of suitable java class autonoumously.

这是我如何使用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
    }
});

#1


4  

I had this problem. I resolved it just by adding brackets to "arrayData" parameter server-side. On client:

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

$.post('action.do', {arrayData:myArray, mode:"insert"});

Please, note, on the client-side arrayData parameter is without brackets.

请注意,客户端arrayData参数没有括号。

On server:

在服务器上:

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

This worked for me!

这对我有用!

#2


0  

Try to use

尝试使用

$.post('action.do', {"arrayData":myArray, "mode":"insert"});

and on server

并在服务器上

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

#3


0  

Here is how I pass json to my servlet, using json2.js from here. In the servlet you can then use gson, or jackson to automatically convert you json to an instance of suitable java class autonoumously.

这是我如何使用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
    }
});