스프링 3.0부터 json, xml 에 대한 지원을 위해 ContentNegotiatingViewResolver라는게
새로 생겼는데 3.2부터 usage가 바뀌었습니다.
기존 설정방법은 아래와 같았으나, 7번 라인에서의 mediaType이 deprecated 됐습니다.
* 이와 더불어 defaultContentType, favorParameter, IgnoreAcceptHeader 등도 deprecated 됐습니다.
* Json 라이브러리가 이전에는 codehaus이었으나 fasterxml로 바뀌었습니다.
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="2"/>
<property name="mediaTypes">
<map>
<entry key="html" value="text/html;charset=UTF-8"/>
<entry key="xml" value="application/xml"/>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="prefixJson" value="true"/>
</bean>
</list>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
</list>
</property>
</bean>
이를 바꾸면 아래와 같이 설정할 수 있다.
<bean id="contentNegotiatingResolver"
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1"/>
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json" />
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
<property name="prefixJson" value="false" />
</bean>
</list>
</property>
</bean>
4번줄 대로 contentNegotiationManager라는 것을 사용해야 한다.
또한 codehaus의 json라이브러리 대신 19번줄 대로 바뀐 JsonView를 사용하면 된다.
'Programming > Java' 카테고리의 다른 글
스프링 Maven BOM Dependency (0) | 2014.06.04 |
---|---|
slf4j api 사용 방법 (0) | 2014.06.04 |
httpclient에서 post로 전달되는 값이 인코딩되지 않게하는 방법 (0) | 2009.08.26 |