【ajax系列】Spring4 mvc配置JSON返回
2016-07-17 13:02
357 查看
版本
JDK 1.8
Spring 4.3.0RELEASE
配置文件的配置信息跟jackson的版本有关。
版本一: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
版本二:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
::【ajax】Springmvc 返回JSON文本::
1、添加 jackson jar包 :
jackson-core
jackson-mapper
jackson-databind
pom.xml
2、在spring.xml中添加一下代码
3、在Action类中添加如下代码,ajax可以返回一个对象,List类型和Map类型
Action.java
index.jsp
JDK 1.8
Spring 4.3.0RELEASE
ERR:: Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter] for bean with name 'org.springframework.http.converter.json.MappingJacksonHttpMessageConverter#28b5818' defined in class path resource [spring.xml];
配置文件的配置信息跟jackson的版本有关。
版本一: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
版本二:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
::【ajax】Springmvc 返回JSON文本::
1、添加 jackson jar包 :
jackson-core
jackson-mapper
jackson-databind
pom.xml
<!--ajax jackson-core jar --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.3</version> </dependency> <!--ajax jackson-mapping jar --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <!-- Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JavaType --> <!--ajax jackson-databind jar --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.3</version> </dependency>
2、在spring.xml中添加一下代码
<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list > <ref bean="mappingJacksonHttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean>
3、在Action类中添加如下代码,ajax可以返回一个对象,List类型和Map类型
Action.java
package com.springmvc_ajax; import java.util.ArrayList; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping(value="/user") public class Spring_AjaxDemo { public Spring_AjaxDemo(){ System.out.println("Spring_AjaxDemo...."); } /** * @ResponseBody User 表示让springmvc将User对象转成json文本 */ @RequestMapping(value="/bean2json") public @ResponseBody User bean2json() throws Exception{ //创建Emp对象 User emp = new User(); emp.setId(1); emp.setUserName("学生"); emp.setOnboardDate(new Date()); return emp; } @RequestMapping(value="/listbean2json") public @ResponseBody List<User> listbean2json() throws Exception{ //创建List对象 List<User> userList = new ArrayList<User>(); //向List对象中添加三个对象 userList.add(new User(1,"小明",new Date())); userList.add(new User(2,"小李",new Date())); userList.add(new User(3,"花花",new Date())); //返回需要转JSON文本的对象 return userList; } @RequestMapping(value="/map2json") public @ResponseBody Map<String,Object> map2json() throws Exception{ //创建List对象 List<User> empList = new ArrayList<User>(); //向List对象中添加三个Emp对象 empList.add(new User(1,"小明",new Date())); empList.add(new User(2,"小李",new Date())); empList.add(new User(3,"花花",new Date())); //创建Map对象 Map<String,Object> map = new LinkedHashMap<String,Object>(); //向Map对象中绑定二个变量 map.put("total",empList.size()); map.put("rows",empList); //返回需要转JSON文本的对象 return map; } }
index.jsp
<%@ page language="java" pageEncoding="utf-8"%> <!DOCTYPE html> <!-- XHTML 1.0 版本声明文档类型 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> --> <html> <head> <title>springmvc_ajax</title> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> </head> <body> <input type="button" value="Emp转JSON"/><p> <span id="span1">test</span><br> <input type="button" value="List<Emp>转JSON"/><p> <input type="button" value="Map<String,Object>转JSON"/><p> <!-- User转JSON --> <!-- url 请求发送地址 sendData 发送请求体中的数据,符合JSON格式,例如:{key:value,key:value} function() 请求成功时执行回调函数,类似于传统方式ajax.onreadystatechange = 处理函数 function处理函数最多可以接收三个参数 - 服务端返回的数据,例如:backData - 服务端状态码的文本描述,例如:success、error - ajax异步对象,即XMLHttpRequest对象 (ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的.ajaxSubmit) --> <script> $(":button:first").click(function(){ var url = "${pageContext.request.contextPath}/user/bean2json.action"; var sendData = null; $.post(url,sendData,function(backData,textStaut,ajax){ alert(ajax.responseText); //var hiredate = backData.hiredate; //var date = new Date(hiredate); //alert(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+(date.getDate())+"日"); }); }); </script> <!-- List<Emp>转JSON --> <script type="text/javascript"> $(":button:eq(1)").click(function(){ var url = "${pageContext.request.contextPath}/user/listbean2json.action"; var sendData = null; $.post(url,sendData,function(backData,textStaut,ajax){ alert(ajax.responseText); }); }); </script> <!-- Map<String,Object>转JSON --> <script type="text/javascript"> $(":button:last").click(function(){ var url = "${pageContext.request.contextPath}/user/map2json.action"; var sendData = null; $.post(url,sendData,function(backData,textStaut,ajax){ alert(ajax.responseText); }); }); </script> </body> </html>
相关文章推荐
- GitHub 上100个最受欢迎的Java基础类库
- HeadFirstJava——12_序列化和文件的输入/输出
- JAVA基本类库介绍
- java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
- 个人学习-java-spring
- 【日常犯错】Eclipse出现异常
- Activity--Eclipse安装Activity designer插件失败
- Java toString()方法
- Java编程练习系列一:获取给定范围内的所有素数
- 《我的世界》检测不到java怎么办?
- javaweb记录
- Java多线程 之 lock与condition的使用(十四)
- Java 匿名类不能拥有一个构建器
- Rxjava入门
- RxJava 学习资料大全
- 在Windows下的Eclipse中如何将WordCount程序提交到集群运行
- 文本文件关键字替换(Java)
- Struts1与Struts2原理 区别 详解 汇总
- 在Mac OS X上安装VirtualBox 和 Vagrant搭建Java web本地开发环境
- Java 中新增的 foreach 的用法