您的位置:首页 > 编程语言 > Java开发

SpringMVC解决返回JSON格式,IE显示保存文件

2015-07-28 23:13 429 查看
这是我从网上搜索总结得来的

使用了Spring4.1.6

首先为什么IE会提示保存文件?

因为SpringMVC默认的Json转换器设置响应头设置为application/json

但是至少IE9不支持[b]application/json格式,这时候需要更改json返回的响应头为”text/html;chartset=UTF-8“了.[/b]

因为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

把[b]<mvc:annotation-driven />注解改成这样[/b]

<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是不会再提示保存文件了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息