【问题标题】:read javascript array from servlet从 servlet 读取 javascript 数组
【发布时间】:2014-10-17 05:49:03
【问题描述】:

我的问题是

如何从 servlet 读取 javascript 数组

使用 javascript,我正在阅读创建 ArrayList 如下:

var data1= new Array();
for(var i=1;i<=count;i++){
    var Obj=new Object();
    Obj.Name=$('#name'+i).val();
    Obj.url=$('#empno'+i).val();
    data1.push(""+Obj);
}
$.post("servlet", {'array':data1,mode:"insert" }); 

如何从 servlet 读取值

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

【问题讨论】:

  • 从 servlet 使用以下代码读取 arraylist String[] data=request.getParameterValues("array[]");系统.out.println("-----"数据[0]);它正在打印 [object object] 请建议如何获取数组中的名称和 url

标签: java javascript arrays servlets


【解决方案1】:

可以从请求中获取参数

String array = request.getParameter("array");
String mode= request.getParameter("mode");

【讨论】:

    【解决方案2】:

    尝试使用“Json.stringify”。

    $.ajax({
            url: 'http://localhost:8080/JasonToServlet/test',
            type: 'POST', 
            dataType: 'json',
            data: {"json[]": JSON.stringify(data1)},
            success: function(result) {
            }
       });
    

    这会将数组解析为字符串,如下所示:

     [{"Name":"Test","url":"Me"},{"Name":"Test2","url":"Me2"}]
    

    这里的问题是上面的结果是一个字符串而不是一个数组。所以你将不得不使用 stringtokenizer 来拆分字符串并使其成为数组。

    从 servlet 得到这个:

    String row= request.getParameter("json[]");
    String row1= request.getParameter("mode");
    StringTokenizer str = new StringTokenizer(row, "[{}]");
    List<String> temp = new ArrayList<String>();
    
    while (str.hasMoreElements()) {
        String token = str.nextToken(); 
        if(!token.equal(","))
            temp.add(token);
    }
    

    这不是一个完美的解决方案,但它有效.. :)

    【讨论】:

      猜你喜欢
      • 2017-09-09
      • 2016-10-08
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 2017-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      相关资源
      最近更新 更多