Vivin Paliat..
32
你可以从JavaScript方面做到这一点:
$.ajax({
type : "POST",
url : "/myurl",
data : {
myArray: a //notice that "myArray" matches the value for @RequestParam
//on the Java side
},
success : function(response) {
// do something ...
},
error : function(e) {
alert('Error: ' + e);
}
});
然后在Java端(在Spring 3中),假设此方法通过以下方式映射/myurl:
public String controllerMethod(@RequestParam(value="myArray[]") Integer[] myArray){
....
}
我相信以下内容也会奏效:
public String controllerMethod(@RequestParam(value="myArray[]") List myArray){
....
}
Spring很聪明,可以弄清楚如何进行绑定.
对于多个阵列,您可能只想拥有一个命令对象:
public class MyData {
private List firstArray;
private List secondArray;
private List thirdArray;
...
...
}
然后在JavaScript方面:
$.ajax({
type : "POST",
url : "/myurl",
data : {
myData: {
"firstArray": firstArray,
"secondArray": secondArray,
"thirdArray": thirdArray
}
},
success : function(response) {
// do something ...
},
error : function(e) {
alert('Error: ' + e);
}
});
在Java端,您可以使用@ModelAttribute以下命令进行绑定:
public String controllerMethod(@ModelAttribute(value="myData") MyData myData) throws ParseException {
....
}
编辑
更改了@RequestParam注释以使用myArray[]而不仅仅是myArray,因为此更改似乎是在首次发布此答案后在Spring中进行的.