1. 在maven项目的pom.xml文件引入依赖
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency>
2. 在SpringMVC的xml配置文件中加上注解驱动
<mvc:annotation-driven />
3. Controller方法中加入@ResponseBody注解
最后,配置好以上三步,正常的话应该就能返回json数据了,但是事与愿违,遇到了一系列错误,在这里予以记录,希望之后自己能够回顾以及帮助到你们。
问题1:No converter for [class java.util.ArrayList] with preset Content-Type 'null'
① 一开始只关注Content-Type,这个讲JavaWeb的时候,我们都知道是响应给客户端的文本类型,既然是null,那就自己手动设置一下呗,如下图。
② 设置后,依然还是提示No converter found for return value of type [class java.util.ArrayList],提示没有转换器,那么应该是导包有问题了,于是我取消了pom.xml文件的依赖配置,手动导包。
③ 手动导包后,还是报错,此时提示Error creating bean with name 'org.springframework.http.converter.json.MappingJackson2HttpMessageConverter#0',这下就有点崩了,怎么包导进来,反而创建不了对象了,于是乖乖地改回pom文件导入依赖,改完之后恢复到了错误No converter found for return value of type: class java.util.ArrayList。
问题2:没有成功创建MappingJackson2HttpMessageConverter对象
① 其实问题2就是问题1的确定版,我们确定了MappingJackson2HTTPMessageConverter对象没有成功创建从而处理不了List返回类型,然后我就一直刷新maven,重载项目,虽然maven列表有Jackson的包,但是一直都没用,如下图。
② 直至有一次,打开了【File】---》【Project Structure】,发现Artifacts选项中的项目lib目录有其它maven包,但没有Jackson包,才觉得是这里有问题。
配置后,总算是成功运行了,提交请求后,页面显示json数据,如下图。
SpringMVC接收ajax请求并回传json数据 配置的步骤及问题解决。No converter found for type ArrayList with Content-Type null