您的位置:首页 > 编程语言 > Java开发

spring MVC 返回数据自动转换为json格式

2013-10-24 10:09 585 查看
在spring-mvc.xml中添加如下配置

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="cacheSeconds" value="0" />
<!-- 配置一下对json数据的转换 -->
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>


lib中添加 jackson-all-1.7.6.jar

或者添加如下配置

<mvc:annotation-driven/>


<mvc:annotation-driven />网上解释:

<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。

并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。

后面,我们处理响应ajax请求时,就使用到了对json的支持。

后面,对action写JUnit单元测试时,要从spring
IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter
两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。

在spring context中注册了RequestMappingHandlerMapping,RequestMappingHandlerAdapter,ExceptionHandlerExceptionResolver三个类

测试:

@RequestMapping("/index")
@ResponseBody
public Map index(String username) {
System.out.println(username);

//test return list format
//            ArrayList list = new ArrayList();
//            list.add("value1");
//            list.add("value2");
//            return list;

//test return map
Map map = new HashMap();
map.put("key", "value");
return map;

//return "index";
}


返回数据:

{"key":"value"}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: