我想通过 ajax 请求发送 map ,但收到 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) {
...
}
请帮助我,我将不胜感激。
最佳答案
1) 永远不要在程序中使用唯一不同的是数字的变量名。这就是数组的用途。数组中元素的名称为myArr[0]、myArr[1]等。
2) 在 java 中,您可以执行所谓的“序列化”对象。序列化将对象转换为字符串,可以在 ajax 请求中发送一个字符串,然后可以在您的 servlet 中对该字符串进行反序列化以从该字符串创建一个对象。
序列化为字符串:How to binary (de)serialize object into/form string?
关于java - 通过 ajax 发送 Map<String,List<String>> 作为请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16537039/