Я пытаюсь передать массив JSON в весеннем MVC контроллер, как, например:Переходя в JSON массива Spring MVC контроллер
var myList = new Array();
data._children.forEach(function (d) {
myList.push({NAME: d.name, TYPE: d.TYPE, FDATE: d.FDATE });
});
$.post("/ListRequest", {myList: myList});
Контроллер выглядит так:
@RequestMapping(value="/ListRequest", method = RequestMethod.POST)
public void ListRequest(@RequestParam("myList") myList tempmyList)
{
System.out.println(tempmyList);
}
определен класс MyList как таковой:
public class MyList {
private List<ListT> ListT;
public List<ListT> getListT() {
return ListT;
}
public void setListT(List<ListT> listT) {
ListT = listT;
}
}
ListT класс:
public class ListT {
private String NAME;
private String TYPE;
private Long FDATE; ...
Я получаю эту ошибку: HTTP Status 400 - Обязательный параметр MyList 'MyList' не присутствует
Также попробовал этот запрос:
$.ajax({
type: "post",
url: "ListRequest", //your valid url
contentType: "application/json", //this is required for spring 3 - ajax to work (at least for me)
data: JSON.stringify(myList), //json object or array of json objects
success: function(result) {
//do nothing
},
error: function(e){
alert('failure');
}
но получаю эту ошибку: JBWEB000120: Запрос отправленный клиентом, был синтаксически неправильным.
Открыть консоль вашего браузера и проверить, что JSON действительно записано в запросе. Отправьте это здесь. Кроме того, вам нужно будет использовать '@ RequestBody', а не' @ RequestParam'. Я позволю тебе понять, почему. –
Я попробовал @RequestBody, но получаю неподдерживаемую ошибку mediatype. Также JSON выглядит так: {«myList»: [{«NAME»: «Blah», «TYPE»: «TYPE1», «DATE»: 1385874000000}]} – mrkb80
Измените запрос AJAX на отправку типа контента как 'приложение/json'. –