2013-05-14 94 views
0

我想通過Ajax請求發送一個json到Spring mvc控制器而沒有成功。 JSON字符串具有以下形式:傳遞json對象到使用Ajax的spring mvc控制器

{"Books": 
    [{'author':'Murakami','title':'Kafka on the shore'},{'author':'Murakami','title':'Norwegian Wood'}]} 

該解析JSON包裝它通過該Java豆控制器:

class Books{ 
    List <Map<String, String>> books; 
    //...get & set method of the bean 
} 

控制器方法具有以下形式:

@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST }, value = "/checkBook.do") 
public ModelAndView callCheckBook(
     @RequestBody Books books){....} 

不幸的是,這不起作用,調用方法時出現以下錯誤: 「Null ModelAndView返回到DispatcherServlet與名稱...「

我在哪裏錯了? 提前謝謝! 問候

+0

你使用的是什麼版本的彈簧?還提供了創建ajax請求的腳本。 – 2013-05-14 08:58:14

+0

spring version 3.0.4,js代碼如下:$ .post('checkBook.do',$ .parseJSON(jsonString),function(data){..} – user1820620 2013-05-14 09:13:07

+0

發佈更多callCheckBook方法的代碼。 – OQJF 2013-05-14 09:16:26

回答

0

創建一個模型類

class Books 
{ 
private string author; 
private string title; 
// gets and sets 
} 

,並在阿賈克斯創建包裝類這樣

class BookWrapper{ 
private List<Books> Books; // this name should matches the json header 
} 

現在控制器

@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST }, value = "/checkBook.do") 
public ModelAndView callCheckBook(
     @RequestBody BookWrapper Books){....} 

調用創建你seralizeArray論壇這會給你json對象,然後它會綁定到wr apper class

相關問題