json 을 사용하기 위해 ContentNegotiatingViewResolver 을 사용하였다 .
확장자 json 을 통해 호출하면 결과값이 잘 떨어진다 *.do 에서
json 을 받기 위해 /* 변경해야 했으며 이 방식 Restful 방식에 어울리는듯 하다 .
[spring-context.xml]
<bean class=”org.springframework.web.servlet.view.ContentNegotiatingViewResolver”>
<property name=”mediaTypes”>
<map>
<entry key=”json” value=”application/json” />
</map>
</property>
<property name=”defaultViews”>
<list>
<bean class=”org.springframework.web.servlet.view.json.MappingJacksonJsonView”/>
</list>
</property>
<property name=”order” value=”1″ />
<property name=”ignoreAcceptHeader” value=”true” />
</bean>
[web.xml]
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
결국 기존의 것에서 가장 작은 변화를 주고 json 을 처리하는것은 Converter 를
이용하는것이었다 . jacksonMessageConverter 와 @ResponseBody 를 이용하면 된다 .
controller 에서는 ModelAndView 대신 원하는 형식의 VO 객체를 리턴하거나 Map 을이용해
객체처럼 구성해 리턴해도 된다.
<bean class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”>
<property name=”messageConverters”>
<list>
<ref bean=”jacksonMessageConverter”/>
</list>
</property>
</bean>
<bean class=”org.springframework.http.converter.json.MappingJacksonHttpMessageConverter” />
@RequestMapping(“/jsonTest”)
@ResponseBody
public List jsonTest(){
}