SpringMVC项目接收Json数据报406错误
在springMVC+MyBatis写一个项目,在发起请求的时候,意外返回的错误是406,于是上网查了406错误代表的意思。
406错误为:请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。
什么意思呢? 意思是你发送一个请求给服务器,你自己想接收的返回实体为Json类型,但是服务器返回给你的并不是Json,所以会有406错误。
解决方法如下:
1. 若没有开启mvc的注解可用以下代码开启
<!-- 开启注解 -->
<mvc:annotation-driven />
2. 配置Json模板
配置Json模板需要加入jackson的jar包(Spring 4.0以上建议使用jackson2.0版本以上)
并在配置文件中加入以下代码
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
</list>
</property>
</bean>
3. 在方法前增加@ResponseBody
在此记录下,纪念我找原因的好几个小时。。。