【问题标题】:Sending Map<String,List<String>> as request parameter through ajax通过 ajax 发送 Map<String,List<String>> 作为请求参数
【发布时间】:2013-05-08 08:55:07
【问题描述】:

我想通过 ajax 请求发送地图,但收到 400 个错误请求。 我的数据是这样的。

var idss1 = [];
var idss2 = [];
var idss3 = [];
var idss4 = [];
var idss5 = [];


    map[id_1] = idss1;
    map[id_2] = idss2;
    map[id_3] = idss3;
    map[id_4] = idss4;
    map[id_5] = idss5;

我们所有的键(id_*)都是字符串

Ajax 调用是

$.ajax({
        type:"POST",
        url: myurl,
        dataType: "text",
        data : {allIds : map},
        success: function(response) {...}

在服务器端我的方法签名是

public void myMethod(HttpServletRequest request, @RequestParam("allIds") Map<String, List<String>> ids) {
...
}

请帮助我,我将不胜感激。

【问题讨论】:

  • 你能构造一个 JSON 列表并发送吗?应该是dataType: "text"
  • 我想将它作为地图而不是列表发送。我如何使用 json 列表而不是地图,你能帮忙吗?
  • 所以你可以发送一个JSON地图,网上有很多教程可以这样做!!!
  • 你遇到了什么异常?
  • @Kshitij 400 错误请求

标签: java javascript jquery spring-mvc


【解决方案1】:

1) 你不应该在程序中使用唯一的区别是数字的变量名。这就是数组的用途。数组中元素的名称有 myArr[0]、myArr[1] 等。

2) 在 java 中,您可以执行所谓的“序列化”对象。序列化将一个对象转换为一个字符串,一个字符串可以在ajax请求中发送,然后可以在你的servlet中反序列化该字符串以从该字符串创建一个对象。

序列化为字符串:How to binary (de)serialize object into/form string?

【讨论】:

    猜你喜欢
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多