gpt4 book ai didi

java - 如何使用 jQuery 将包含对象数组的对象数组传递给 Spring MVC Controller ?

转载 作者:行者123 更新时间:2023-11-29 04:28:50 26 4
gpt4 key购买 nike

我正在尝试通过 AJAX 调用从客户端向 Spring MVC RestController 发送一个 POJO 数组,每个 POJO 包含其他 POJO 的列表。

我有以下提交的 POJO:

public class Commit {

private long revision;
private Date date;
private String author;
private String comment;
private String akuiteo;

private List<ChangedPath> changedPathList = new ArrayList<ChangedPath>();

它包含一个更改路径列表:

public class ChangedPath extends PatchFile {

private char type;
private String copyPath;

我有以下 Spring Controller :

@RestController
public class AkuiteoMapController {

static Logger log = Logger.getLogger(PatchDemoApplication.class.getName());

public AkuiteoMapController() {
// TODO Auto-generated constructor stub
}

@RequestMapping(value="/akuiteoMap")
@ResponseBody
public AkuiteoMap getAllCommits(@RequestBody Commit[] commits) throws IOException{
log.info("inside akuiteoMap");
AkuiteoMap akuiteoMap=new AkuiteoMap();
akuiteoMap= UserService.getAkuiteoMap(commits);
log.info("akuiteo map: "+akuiteoMap);
return akuiteoMap;
}

在客户端,我尝试执行以下 ajax 调用:

$.ajax({
url: 'akuiteoMap',
method: 'POST',
dataType: 'json',
contentType: 'application/json',// charset=utf-8',
data:{
commits:JSON.stringify(commits),
//commits:commits
},
success: function(data){
console.log(data);
}
})

我收到以下错误:

2017-06-26 10:58:40.764  WARN 4788 --- [nio-8080-exec-8] 
.w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message:
org.springframework.http.converter.HttpMessageNotReadableException:
JSON parse error: Unrecognized token 'commits': was expecting ('true',
'false' or 'null'); nested exception is
com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'commits':
was expecting ('true', 'false' or 'null')
at [Source: java.io.PushbackInputStream@e57cb2a; line: 1, column: 9]

我做错了什么?

最佳答案

将 JSON 字符串作为接受 Controller 方法的数据传递。

$.ajax({
url: 'akuiteoMap',
method: 'POST',
dataType: 'json',
contentType: 'application/json',,
data : JSON.stringify(commits),
// ----^^^^^^^^^^^^^^^^^^^^^^^----
success: function(data){
console.log(data);
}
})

关于java - 如何使用 jQuery 将包含对象数组的对象数组传递给 Spring MVC Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756318/

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