2011-05-08 2 views
7

나는 아주 간단한 질문이 있습니다,하지만 난 간단한 답을 찾을 수 없습니다 :RequestBody를 Java Bean에 바인딩하기 위해 Spring MVC 3.0과 함께 Jackson을 사용할 수 있습니까?

나는 잭슨이 @ResponseBody

를 사용하여 응답자바 콩 JSON에 직렬화하기 위해 노력하고있어 하지만 사용하여 다시 JSON요청에서 자바 콩에 직렬화하지 못했다 @RequestBody

예 :

// 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. 그것은 모든 요청에 ​​대해 수 있습니까?
  2. 그렇다면 구성 방법은 무엇입니까?
  3. JQuery 예제/팁 (예 : 올바른 컨텐츠 유형 설정)이 있습니까?

업데이트 :.

구성 (그것을위한 responseBody 위해 일하지만, 구성이 올바른 또는 잘못된 중 하나 인 이해가되지 않습니다 RequestBody을 위해하지 않았다에 JQuery, Spring MVC @RequestBody and JSON - making it work together 몇 가지 단점을 볼 수 있었다 버그가 되겠습니까?)

답변

6
  1. 예, 가능합니다.

  2. @ResponseBody가 작동하면 서버 측 구성이 좋을 것입니다.

  3. content-type을 application/json으로 설정해야합니다. JQuery.ajax() 메서드에는 contentType 매개 변수가 있습니다. AJAX와 Spring 3의 좋은 예/요약은 here입니다. 그는 $ .postJSON 메서드를 사용하고 있는데, 이는 대부분 this simple plugin입니다.

+0

감사합니다. 이것은 몇 가지 진전을 가져다주었습니다 (메소드가 호출 됨). 그러나 지금은 객체 (bean)를 null로 처리합니다. HTTP를 추적하면 올바르게 전송되지만, 나는 포기하고 오래된 학교 기술을 사용하여 직렬화합니다. (그냥 String으로 요청을 읽고 사용합니다. 말 그대로 JSON deserializer) –

+0

내 서버가 응용 프로그램/json mime 유형을 거부 할 수 있습니까 ??? 유일한 이유가 될 수 있습니까? –

+0

나는 HTTP 오류 코드 나 HTTP 추적에서 볼 수있는 일종의 오류가 발생한다고 생각합니다. 일반 스프링 바인딩을 사용할 수없고 JSON 대신 요청 매개 변수를 전달할 수없는 이유가 있습니까? – David

관련 문제