这是我从网上搜索总结得来的
使用了Spring4.1.6
首先为什么IE会提示保存文件?
因为SpringMVC默认的Json转换器设置响应头设置为application/json
但是至少IE9不支持application/json格式,这时候需要更改json返回的响应头为”text/html;chartset=UTF-8“了.
因为SpringMVC一般都加了这个
<mvc:annotation-driven />
这个有很多好处
<!-- <mvc:annotation-driven/> 会自动注册RequestMappingHandlerMapping 、RequestMappingHandlerAdapter
与 ExceptionHandlerExceptionResolver 三个bean。 还将提供以下支持: 支持使用 ConversionService
实例对表单参数进行类型转换 – 支持使用 @NumberFormatannotation、@DateTimeFormat – 注解完成数据类型的格式化
支持使用 @Valid 注解对 JavaBean 实例进行 JSR 303 验证 – 支持使用 @RequestBody 和 @ResponseBody
注解 -->
这个时候就需要更改JSON转换器的返回响应头了
需要这三个JAR
jackson-annotations-2.5.0.jar,jackson-core-2.5.0.jar,jackson-databind-2.5.0.jar
把<mvc:annotation-driven />注解改成这样
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
然后就大功告成了,当然了,这好像只完成了返回Json对象为Map的响应头更改,
是不是此时我也没有做实验。
反正返回Map的方法IE是不会再提示保存文件了