SpringMVC 访问controller层出错:No converter found for return value of type: class java.util.HashMap

  • 作者: 凯哥Java
  • 经验分享
  • 时间:2019-12-11 23:03
  • 193人已阅读
简介 在使用SSM整合的时候,springmvc添加@ResponseBody的时候,正常情况下都会返回json的。但是又的时候如果没有配置好的话,如果想要返回Map的json对象会报:Noconverterfoundforreturnvalueoftype:classjava.util.HashMap错误。如下图:如果返回的事字符串或者事Integer类型就可以正常返回,但是如果返回对象的话,就会出现

在使用SSM整合的时候,spring mvc 添加@ResponseBody的时候,正常情况下都会返回json的。但是又的时候如果没有配置好的话,如果想要返回Map的json对象会报:No converter found for return value of type: class java.util.HashMap错误。

如下图:

e8294f12e140c2011571906e3e4f21d7.png

如果返回的事字符串或者事Integer类型就可以正常返回,但是如果返回对象的话,就会出现这个错误。说明在spring mvc转换成json的时候出错了。

解决方案一:

查看pom.xml是否添加了jackson相关的jar.

我们知道spring mvc默认使用的事jackson来转换json的。如果没有的话,添加上即可。

方案二:

如果不想在pom.xml中添加的话,可以在spring-mvc.xml中添加如下配置:


<!-- 启动Springmvc注解驱动 -->
    <mvc:annotation-driven/>
 <!-- 返回json 方法一 需要导入 fastjson.jar包 -->  
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="false">
            <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
            <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <!-- 这里顺序不能反,一定先写text/html,不然ie下出现下载提示 -->
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

ad1bcf3047035aacfb3997bdf5f7a9f2.png


TopTop