Я пытаюсь связать данные формы, сериализованные вместе с другими данными в вызове AJAX. Кажется, я не могу заставить Spring поднять это. Он просто создает пустую форму.
JavaScript:
$.ajax({
method: "GET",
url: contextPath,
data: {"form": serializedForm, "otherStuff": otherStuff},
contentType:"application/json; charset=utf-8",
cache: false,
success: function(data) {});
Контроллер:
@ResponseBody
@RequestMapping(value = "/blah", method=RequestMethod.GET)
public String blah(@ModelAttribute("form") Form form, @RequestParam(value = "otherStuff[]", required=false) String[] otherStuff, HttpServletResponse response){
//stuff
}
Есть ли способ заставить Spring отображать мою форму в параметре метода?
Кажется, что я могу получить параметры отдельно от HttpServletRequest, но в идеале я бы хотел, чтобы моя форма проходила через InitBinder.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Похоже, проблема связана с запросом AJAX. Использование пары ключ-значение для каждого параметра метода не работает для привязки данных. Вместо этого, если я объединю сериализованные данные в одну строку, Spring сможет правильно сопоставить их с каждым объектом.
$.ajax({
method: "GET",
url: contextPath,
data: serialized + "&otherStuff = " + otherStuff,
contentType:"application/json; charset=utf-8",
cache: false,
success: function(data) {});
Я не уверен, есть ли более чистый способ сделать это, чтобы избежать объединения ваших объектов в одну строку, но это работает.
Возможный дубликат Spring MVC: сложный объект как GET @RequestParam