2013-05-14 101 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

相关问题