我创建了一个像这个var detailsArr = new Array();
的JS数组,并将一些数据推送到这个数组中。
现在我将这个数组通过Ajax推送到我的Spring Controller,就像这样
$.ajax({
type: "POST",
url: "submit",
data: ({detailsArr : detailsArr }),
success: function(html){
alert( "Submitted");
}
});
在Spring Controller端,我通过@RequestBody
注释接收到这个数组。 Spring Controller方法签名如下所示
public String submit(@RequestBody String body)
但是在Spring Controller端收到的数组基本上是这种格式的字符串
detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3
我必须手动拆分此String以获取值,这是一个繁琐的过程。有没有什么方法可以让我得到数组,所以我只需要迭代它来获取值。
答案 0 :(得分:8)
您应该以json格式将数组传递给服务器。并使用Json转换为对象转换器。你可以使用Gson
。
客户方:
$.ajax({
type: "POST",
url: "submit",
data:JSON.stringify(detailsArr),
success: function(html){
alert( "Submitted");
}
});
服务器端:
public String submit(@RequestBody String body){
//convert body to array using JSONLib, FlexJSON or Gson
}
答案 1 :(得分:6)
将其传递给控制器时,请按照以下方式传递:
data:JSON.stringify(detailsArr);
在您的控制器上,您可以解码收到的JSON。