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格式的数据过来,顺带一提,以防需要.

原文地址:https://www.cnblogs.com/tele-share/p/7887201.html