Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can Jackson be used with Spring MVC 3.0 to also bind the RequestBody to a Java Bean?

I have a very simple question, but I can't seem to find a simple answer:

I got Jackson working to serialize Java beans to JSON in the response using @ResponseBody

But I didn't manage to serialize back JSON to Java beans in the request using @RequestBody

e.g.

// this works fine, Bean is being serialized to JSON 
@RequestMapping(...)
public @ResponseBody Bean getSomething(...){
    //...
}

// I don't know how to make this work, if if there is a way at all
@RequestMapping(...)
public void setSomething(@RequestBody Bean bean, ...){
    //...
}
  1. Is it possible for the request at all?
  2. If so, how to configure it?
  3. Is there a JQuery example / tips (e.g. setting the right content type)?

Update:

See JQuery, Spring MVC @RequestBody and JSON - making it work together some quirks in the configuration (it worked for ResponseBody, but didn't for RequestBody, which doesn't make sense, the configuration is either correct or wrong. could be a bug?)

like image 492
Eran Medan Avatar asked May 08 '11 22:05

Eran Medan


1 Answers

  1. Yes, it is possible.

  2. Your server side configuration is probably fine if your @ResponseBody is working.

  3. You will need to set the content-type to application/json. The JQuery.ajax() method has a contentType parameter. A great example/summary of AJAX and Spring 3 can be found here. Note that he is using a $.postJSON method, which is most likely this simple plugin.

like image 73
David Avatar answered Oct 24 '22 04:10

David