java.lang.IllegalArgumentException: No converter found for return value of type 异常
这个的错误主要的意思就在于json的转换问题。
我看了之前的一些问题报错,一般就在于以下几个方面:
1.pojo的javaBean的getBean取不到。
2.Spring和json的包冲突。
3.json的几个包没有导入
所以这时候就要找到SpringMvc.xml的配置问题了。几经查找,发现就是这的问题。
适配器和映射器我写的代码如下:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> </bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
1
2
我不知道我这个东西为啥写了两遍,这个注释掉就没有问题了。
为啥我会有这个错误,是因为我之前在SSM整合的时候,SpringMvc.xml没有报错,所以我才一直在使用。
总结一下,基本上这个错误上面的三种方式都能解决,实在不行debug,或者自己进行测试类,最后就是配置的问题,一定要理解这Spring适配器,映射器,注解驱动,试图解析器的意思。不要擅自更改,不一定这个项目正确,另一个就也正确。
springmvc的配置
<?xml version="1.0" encoding="UTF-8"?><!-- 启用spring mvc 注解 -->
<context:annotation-config />
<!-- spring扫描的包 -->
<context:component-scan base-package="com.qst.edu.web.controllor"/>
<!--处理器映射器、适配器的配置-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- DispatcherServlet不处理静态资源,交给服务器默认的servlet处理 -->
<mvc:default-servlet-handler />
<!-- 该配置版本必须spring4.x 和 jackson2.x以上 -->
<!-- 配置处理适配器 Controller类里面@responseBody方法的返回值都需要经过消息转换器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<!-- 处理解决@ResponseBody返回中文乱码情况 -->
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 处理解决后台list、map转换json数据问题 -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
</list>
</property>
<!-- 日期格式转换 自定义类继承 webBindingInitializer接口-->
</bean>
<!-- 启用annotation -->
<mvc:annotation-driven/>
<!-- 视图渲染器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/views/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
</bean>
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">error/error</prop>
<prop key="com.qst.edu.error.LoginFailException">login</prop>
</props>
</property>
</bean>
json版本要和spring相对应4.3x 对应2.7以上
com.fasterxml.jackson.core
jackson-core
2.9.3
com.fasterxml.jackson.core
jackson-annotations
2.9.3
com.fasterxml.jackson.core
jackson-databind
2.9.3