SpringMVC json
之前写过struts2对json的支持------参考我的http://www.cnblogs.com/tele-share/p/7192206.html
接下来说说SpringMVC对json的支持
准备工作:导入jackson-core-asl-1.9.11.jar和jackson-mapper-asl-1.9.11.jar两个jar包(当然还有SpringMVC的包)
jsp页面
1 <script type="text/javascript">
2 $(":button:eq(0)").click(function() {
3 var url = "${pageContext.request.contextPath}/emp/bean2json.action?time=" + new Date().getTime();
4 var data = null;
5 $.post(url,data,function(backData,textStatus,ajax) {
6 alert(ajax.responseText);
7 alert(new Date(backData.hireDate).toLocaleString());
8 });
9 });
10 </script>
后台控制器
使用@ResponseBody注解,该注解用于将返回的对象转换成json格式的数据传给前台
1 @RequestMapping(value="/bean2json.action")
2 public @ResponseBody Emp bean2Json() {
3 Emp emp = new Emp(1,"tele",10000D,new Date());
4 return emp;
5 }
配置文件
1 <!-- 开启注解扫描 -->
2 <context:component-scan base-package="cn.tele.springmvc_008"></context:component-scan>
3
4 <!-- 注册json的适配器 -->
5 <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
6 <property name="messageConverters">
7 <list>
8 <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
9 </list>
10 </property>
11 </bean> -->
可以看到上面关于json的配置较为复杂,那么有没有较为简单的方式呢?
幸运的是spring提供了<mvc:annotation-driven/>,该标签提供了对json格式的支持(并且提供注解的适配器与映射器)
所以配置文件可以这样写:
1 <!-- 开启注解扫描 -->
2 <context:component-scan base-package="cn.tele.springmvc_008"></context:component-scan>
3
4 <mvc:annotation-driven/>
结果:
此外此处使用的是@ResponseBody,实现了后台的java对象转成json对象,如果前台传递的是json对象,那么后台接收时可以在方法的参数前加上@RequestBody注解,
该注解可以将前台传递的json对象转换成java对象,但一般前台很少传递json格式的数据过来,顺带一提,以防需要.