Я пытаюсь отправить массив объектов на свой весенний контроллер.
Сначала объявляю массив в javascript
var ar = new Array();
Затем я создаю объект с именем и количеством
var obj = { name: "", qty: "" };
Пользователь вводит некоторые данные в поля ввода на странице html. Когда они нажимают кнопку добавления, эти данные будут помещены в объект.
obj = { name: $("#name").val(), qty: $("#qty").val() }
Затем я беру объект и вставляю его в созданный мной массив.
ar.push(obj);
Итак, теперь у меня есть массив объектов, которые я хочу отправить в свой весенний контроллер.
var posting = $.post("<%=request.getContextPath()%>/submitArray.htm", {"ar[]": ar});
В моем весеннем контроллере я запрашиваю параметр
@RequestParam("ar[]") Object[] objectArray
Я получаю результат обратно. Это массив объектов, но я не знаю, как получить имя или количество от этого объекта.
Я открыл переменную в отладчике, и она говорит
[[object Object], [object Object]]
Как мне получить значения name и qty из объекта?
@ 31piy Я пробовал $.post("<%=request.getContextPath()%>/submitArray.htm", {"ar[]": ar}); и @RequestBody ReturnObject ar. Я создал класс ReturnObject с двумя переменными private String name; private String qty;. Я получил 415 (неподдерживаемый тип носителя) в консоли Google Chrome после отправки запроса

Создайте класс java для определения объекта вашей модели, т.е.
public class Model {
private String name;
private Double qty;
//getter setter goes here
}
Затем напишите контроллер отдыха, как показано ниже:
@RestController
public class MyController {
@PostMapping(value = "/submitArray", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity process(@RequestBody List<Model> modelList) {
for (Model model : modelList) {
System.out.println(model.getName());
System.out.println(model.getQty());
}
}
}
Теперь разместите свой массив javascript по URL-адресу контроллера с заголовком Content-Type "application / json"
Я ценю отзывы, но, к сожалению, я использую Spring 3.0.6. Следующие аннотации недоступны в вашем ответе @RestController @PostMapping consumes = MediaType.APPLICATION_JSON_UTF8_VALUE. Пока мы говорим, мы выполняем некоторые обновления нашей среды Spring. Однако я могу использовать @RequestBody и успешно отправил обратно один объект после создания класса, соответствующего этому объекту. Теперь мне просто нужно выяснить, как отправить обратно массив этих объектов или список.
Вы можете игнорировать их, просто реализуйте класс модели и добавьте список с помощью @RequestBody.
Попробуйте
@RequestBodyвместо@RequestParam.