Spring Bind AJAX формы данных из значения ключа JSON - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь связать данные формы, которые сериализуются вместе с другими данными в вызове AJAX. Я не могу заставить Весну поднять это. Он просто создает пустую форму.

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.

1 Ответ

0 голосов
/ 08 мая 2018

Проблема, похоже, связана с запросом AJAX.Использование пары ключ-значение для каждого параметра метода не работает для привязки данных.Вместо этого, если я объединю сериализованные данные в одну строку, Spring сможет правильно сопоставить их с каждым объектом.

$.ajax({
method: "GET",
url: contextPath,
data: serialized + "&otherStuff=" + otherStuff,
contentType:"application/json; charset=utf-8",
cache: false,
success: function(data) {});

Я не уверен, существует ли более чистый способ сделать это, чтобы избежать слипания ваших данных.объекты в одну строку, но это функционально.

...