原因:没有找到类型为java.util.HashMap的返回值的转换器
开始一直以为是pom文件jackson包没有导入,经过查询导入了jackson包也无法正常转换
然后找到一段资料
在Spring.xml文件中配置以下内容即可:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name = "supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text"/>
<constructor-arg index="1" value="plain"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="*"/>
<constructor-arg index="1" value="*"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text"/>
<constructor-arg index="1" value="*"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="application"/>
<constructor-arg index="1" value="json"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
</list>
</property>
</bean>
原因是没有注册JSon转换,@ResponseBody时无法根据转换器进行转换
方法二:
查看你的xml命名空间,可能是命名空间出现问题
前面自动引入的命名空间可能也导致无法转换
转换json通过注解方式需要mvc3.0的支持,一开始xml就自动引入
最终需要引入的是以下命名空间:
修改命名空间后转换成功