gpt4 book ai didi

java - 无法使用 ajax 将数组值发送到 java Controller

转载 作者:行者123 更新时间:2023-12-01 11:14:19 26 4
gpt4 key购买 nike

这是我的代码

   //javaScript code 

var sampleDataList= [];

var dataSample = {
name:"name",
id:"id"
};
sampleDataList.push(dataSample);
sampleDataList.push(dataSample);

$.ajax({
type : "POST",
url : "saveData",
data : sampleDataList,
//data:mydata,
contentType : "json",
async:false,
success : function(data) {
},error: function(XMLHttpRequest, textStatus, errorThrown) {
}
});

//TO class

public class DataSample {
private String name;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}

//Controller

@RequestMapping(value = "/saveData", method = RequestMethod.POST)
public void saveDatas(ArrayList<DataSample> dataSamp){
System.out.println(asdf);
}

我能够访问 Controller ,但 dataSamp(saveDatas 方法的参数)没有任何值。它作为空列表被接收。

请指出我的代码出了什么问题?或者请问如何完成此操作?

最佳答案

发送ajax请求时使用JSON.stringify():

$.ajax({
type : "POST",
url : "saveData",
data : JSON.stringify(sampleDataList),
//data:mydata,
...

如果我没记错的话,你还需要在请求参数中添加 @RequestBody 注释:

@RequestMapping(value = "/saveData", method = RequestMethod.POST)
public void saveDatas(@RequestBody ArrayList<DataSample> dataSamp){
System.out.println(asdf);
}

添加 Jackson 依赖项以将 json 转换为对象,反之亦然

<dependency><!-- jackson -->
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version></version>
</dependency>

关于java - 无法使用 ajax 将数组值发送到 java Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32005422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com