1.在搞SSM框架的时候,前端发送请求后,显示如下错误。
@ResponseBody注解进行返回List<对象>的json数据时出现
nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList错误,
2.前后调用场景:
2.1mvc配置文件设置:fastJson,没问题
2.2 Controller层的注解没问题
2.3注解路径扫描检查,确认没问题。
2.4pom中的依赖是父工程管理的,貌似没问题(最后证明问题出在了依赖上)
3.网上查了这个问题,大部分解释都是:数据以list集合返回后,由AJax解析是错误,即数据没有转化成Json格式。
也可能会以文件的格式下载,而不能正常解析到在浏览器中。
检查了依赖,发现果然是父工程中依赖版本没有添加。为了保险,把依赖版本直接放入子工程中,结果就正常解析了。
<!--json相关的依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
解析正常:
可参考一下文档:https://www.cnblogs.com/hafiz/p/5812873.html
4. 总结:依赖问题是开发过程中常遇到的,比较坑的问题。很容易把注意力放在代码逻辑上。
所以好的编码习惯,规范和统一的依赖管理很重要。