在使用springMVC + mybatis 前端+vue搭建工程时,请求返回异常,前端一直显示500异常,异常提示No converter found for return value of type: class java.util.ArrayList
问题描述是因为后端返回数据在解析异常
具体的解决办法如下:
1、添加依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</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>
2、在springmvc配置文件中添加如下注解
<mvc:annotation-driven/>
此处切记配置注解的位置,如下图,需要配置在适配器的上面,否则不起作用。

这里查看了别人的一篇文章,对此注解有做解释。
参考文章:https://www.cnblogs.com/afeng2010/p/10133797.html
具体介绍如下:
Spring 3.0.x中使用了<mvc:annotation-driven>后,默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类:DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter ,分别为HandlerMapping的实现类和HandlerAdapter的实现类,从3.1.x版本开始对应实现类改为了RequestMappingHandlerMapping和RequestMappingHandlerAdapter。
HandlerMapping的实现类的作用
实现类RequestMappingHandlerMapping,它会处理@RequestMapping 注解,并将其注册到请求映射表中。
HandlerAdapter的实现类的作用
实现类RequestMappingHandlerAdapter,则是处理请求的适配器,确定调用哪个类的哪个方法,并且构造方法参数,返回值。
当配置了mvc:annotation-driven/后,Spring就知道了我们启用注解驱动。然后Spring通过context:component-scan/标签的配置,会自动为我们将扫描到的@Component,@Controller,@Service,@Repository等注解标记的组件注册到工厂中,来处理我们的请求。
如果在web.xml中servlet-mapping的url-pattern设置的是/,而不是如.do。表示将所有的文件,包含静态资源文件都交给spring mvc处理。就需要用到<mvc:annotation-driven />了。如果不加,DispatcherServlet则无法区分请求是资源文件还是mvc的注解,而导致controller的请求报404错误。
在SpringMVC+Mybatis的前后端分离项目中,遇到500错误提示'Noconverterfoundforreturnvalueoftype:classjava.util.ArrayList'。解决方法是添加Jackson库依赖并正确配置SpringMVC的注解驱动,确保数据能正确转换为JSON格式供前端解析。添加依赖包括jackson-databind、jackson-annotations和fastjson,并在配置文件中放置<mvc:annotation-driven/>注解。该注解用于处理注解驱动的请求映射和适配器,确保Spring能识别@Controller和@Service等组件。
271

被折叠的 条评论
为什么被折叠?



