使用Ajax将json对象传递给spring mvc控制器

时间:2013-05-14 08:57:11

标签: spring spring-mvc

我试图通过Ajax请求将json发送到Spring mvc控制器但没有成功。 json字符串具有以下形式:

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

解析json的控制器将它包装通过这个java bean:

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,名称为......”

我哪里出错了? 先感谢您! 此致

1 个答案:

答案 0 :(得分:0)

创建一个Model类

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

并且还创建像这样的Wrapper类

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){....}
在Ajax调用中创建一个seralizeArray你的论坛这将给你json对象,然后它将绑定到包装类