我試圖通過JSON數組成彈簧MVC控制器等這樣的:在JSON數組傳遞到彈簧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狀態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'。 –