项目中遇到一个问题,在IE9或IE10浏览器下访问的时候,总是提示是否下载json。后来从网上搜了好多文章,都是通过指定mappingJacksonHttpMessageConverter,但我在项目中,无论如何按他们说的配置,发现都不起作用。后来又单独配置了一个springmvc的项目环境,试了下,发现是好使的。再仔细研究下,发现有多个原因都可以会导致即使配置了mappingJacksonHttpMessageConverter也不起作用。如引入的jackson包不正确、没有去掉<mvc:annotation-driven/>等。所以下次如有遇到类似问题的朋友,如果在项目中没有起作用,建议新建一个springmvc环境测试,且要注意以下几点:
1.去掉 <mvc:annotation-driven/>;
2.jackson包:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-lgpl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-lgpl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.0</version>
</dependency>
3.还遇到一个症状,如果配置了<mvc:resources location="/css/" mapping="/css/**" />的时候,就需要配置上DefaultAnnotationHandlerMapping,否则,项目启动的时候就不会扫描带有Controller注解的控制器,(至于原因我也没搞明白,经过试验的时候发现了这个症状)。
在解决问题的时候参考了:
http://blog.csdn.net/a9529lty/article/details/24735685
以下是我测试环境时的配置内容:
<context:component-scan base-package="com.ec.spring.web.controller" />
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- http://blog.csdn.net/a9529lty/article/details/24735685 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>