简体   繁体   English

$ .post()到Servlet的JavaScript数组

[英]$.post() a javascript array to Servlet

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} {mode = insert}

I've also tried 我也尝试过

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

and

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

I had this problem. 我有这个问题。 I resolved it just by adding brackets to "arrayData" parameter server-side. 我通过在服务器端“ arrayData”参数中添加方括号来解决此问题。 On client: 在客户端上:

$.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! 这对我有用!

Try to use 尝试使用

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

and on server 和在服务器上

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

Here is how I pass json to my servlet, using json2.js from here . 这是我使用来自here的 json2.js将json传递到servlet的方法。 In the servlet you can then use gson , or jackson to automatically convert you json to an instance of suitable java class autonoumously. 然后,您可以在servlet中使用gsonjackson自动将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM