@RequestBody사용..
- 작성자 :
- 안*훈
- 작성일 :
- 2013-11-10 18:13:43
- 조회수 :
- 1,361
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
전자정부프레임워크의 홈페이지에있는 가이드대로 @RequestBody를 사용하기위해
viewresolver를 바꾸어주었는데 위의 어노테이션이 잘 작동하지 않습니다..
정확히는 @RequestBody를 받는 컨트롤러메소드로 접근하면 url인식이 제대로 되지 않는건지 없는 리소스라고 에러가 나네요..
egov framework에서 @Requestbody 어노테이션을 사용하기위해
dispatcher-servlet.xml에서
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/cfos/service/ui" p:suffix=".jsp"/>
이 부분을
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/cfos/service/ui" p:suffix=".jsp" />
이렇게 viewResolver를 바꿔주었습니다..
하지만 @Requestbody가 설정된 컨트롤러를 타게되면 오류가 나네요..
설정을 바꿔주었을때 다른 uri의 컨트롤러를 타는건 오류가 나지않고 잘됩니다.
viewresolver 설정을 바꿔주었는데도 @requestbody의 사용을 인식하지 못하는거 같은데 설정법이 틀린건가요?
viewresolver를 바꾸어주었는데 위의 어노테이션이 잘 작동하지 않습니다..
정확히는 @RequestBody를 받는 컨트롤러메소드로 접근하면 url인식이 제대로 되지 않는건지 없는 리소스라고 에러가 나네요..
egov framework에서 @Requestbody 어노테이션을 사용하기위해
dispatcher-servlet.xml에서
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/cfos/service/ui" p:suffix=".jsp"/>
이 부분을
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/cfos/service/ui" p:suffix=".jsp" />
이렇게 viewResolver를 바꿔주었습니다..
하지만 @Requestbody가 설정된 컨트롤러를 타게되면 오류가 나네요..
설정을 바꿔주었을때 다른 uri의 컨트롤러를 타는건 오류가 나지않고 잘됩니다.
viewresolver 설정을 바꿔주었는데도 @requestbody의 사용을 인식하지 못하는거 같은데 설정법이 틀린건가요?
A
안녕하세요. 안태훈님.
@RequestBody는 ViewResolver가 아닌 HandlerAdapter 상에 HttpMessageConverter가 등록되어 있어야 합니다.
AnnotationMethodHandlerAdapter를 사용하시는 경우는 다음과 같은 처리를 추가해 주시면 되실 것 같습니다. (Json 처리 예)
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
...
<property name="messageConverters">
<list>
...
<ref bean="jsonHttpMessageConverter"/>
</list>
</property>
</bean>
<bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
그럼, 즐거운 하루되십시오.
감사합니다.
@RequestBody는 ViewResolver가 아닌 HandlerAdapter 상에 HttpMessageConverter가 등록되어 있어야 합니다.
AnnotationMethodHandlerAdapter를 사용하시는 경우는 다음과 같은 처리를 추가해 주시면 되실 것 같습니다. (Json 처리 예)
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
...
<property name="messageConverters">
<list>
...
<ref bean="jsonHttpMessageConverter"/>
</list>
</property>
</bean>
<bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
그럼, 즐거운 하루되십시오.
감사합니다.