【问题标题】:retrieve javascript array from servlet从 servlet 检索 javascript 数组
【发布时间】:2017-03-19 11:14:00
【问题描述】:

如果data1和data2是javascript数组

例如 ["aa","bb"] 和 ["xx","yy"]

  $.ajax({
    url : 'testServlet',
    type: 'post',
    data : 
        [{"array1" : data1},
         {"array2" : data2}]
    ,
    success : function(responseText) {
        //...
    }
});

如何从 testServlet 中检索它??

还是我的数据必须是json格式的?(这部分不熟悉)

我尝试过使用

 String[] data= request.getParameterValues("array1");

但它是空的

【问题讨论】:

标签: javascript java ajax servlets


【解决方案1】:

您可以使用以下sn -p打印出请求参数及其值:

Enumeration params = httpRequest.getParameterNames();
while(params.hasMoreElements()){
    String paramName = (String)params.nextElement();
    System.out.println(paramName + " = " + httpRequest.getParameter(paramName));
}

这应该打印所有的参数和值。这将帮助您检查/调试在服务器端检索到的内容。

【讨论】:

    【解决方案2】:
    var test = [{"array1" : data1},
             {"array2" : data2}];
    
    $.ajax({
        type: 'post',
        url: 'testServlet',
        dataType: 'JSON',
        data: { 
          test: JSON.stringify(test)
        },
        success : function(responseText) {
        //...
    }
    });
    

    然后,testServlet

    String json = request.getParameter("test");
    

    【讨论】:

    • 谢谢,但我希望能够检索 2 个数组中的元素,但现在我只是得到一个像这样的字符串 [{"array1":["aa","bb "]},{"array2":["xx","yy"]}] ?
    • 数组和json有区别。在您的问题中,这是冲突的,您显示了数组但将其作为 json 传递。
    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2014-10-17
    • 2011-09-04
    • 2015-01-31
    • 2014-09-06
    • 2018-03-19
    相关资源
    最近更新 更多