【发布时间】:2018-09-23 06:22:00
【问题描述】:
我在从 javascript 向方法控制器发送 JSON 对象时遇到问题。下面是一段javascript的sn-p代码:
$.getJSON("/api/tasks/" + id)
.done(function( task ) {
$.post("/tasks/update", {
id: task.id,
version: task.version,
name: task.name,
description: task.description,
priority: task.priority,
finished: task.finished,
category: task.category
});
});
以及应该接收json对象的方法控制器
@PostMapping(path = "update")
public String processUpdateForm(@ModelAttribute @Valid Task task, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return TASK_EDIT_FORM;
}
taskService.updateTask(task);
return redirectTo("/tasks");
}
如果我想发送最后一个属性类别,问题就开始了:task.category 这是嵌套对象,我收到以下错误:
org.springframework.beans.InvalidPropertyException: Invalid property 'category[id]' of bean class [pl.java.learning.todolist.domain.task.Task]: Property referenced in indexed property path 'category[id]' is neither an array nor a List nor a Map; returned value was [Category(name=null)]
我注意到该方法无法处理我认为应该是 category.id 的 category[id] ? 我在这个问题上花了几天时间,有很多组合(例如 RequestBody,不同结构的 JSON(JSON.parse 或 JSON.stringify)),但没有好的结果。 也许有人有这个或类似的问题,可以给我一个提示我该怎么办?
问候
【问题讨论】:
标签: json ajax spring post model-view-controller