У меня проблема с отправкой объекта JSON в контроллер метода из JavaScript.Ниже приведен фрагмент кода javascript:
$.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)]
Я заметил, что метод не может обрабатывать категорию [id], которая, я полагаю, должна быть category.id?Я потратил на эту проблему несколько дней с большим количеством комбинаций (например, RequestBody, другой структурой JSON (JSON.parse или JSON.stringify)), но без хороших результатов.Может быть, у кого-то была такая или похожая проблема, и можете дать мне подсказку, что мне делать?
С уважением