【解决方法】springMvc ResponseEntity 下载文件损坏问题解决方法

1,058 阅读1分钟

问题:

用ResponseEntity来导出Excel,Excel乱码,用FileOutputStream导出正常,ByteArrayOutputStream乱码

解决方案:

配置文件修改:
//将读取二进制格式的数据和写出二进制数据
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>

注意点:与MappingJackson2HttpMessageConverter 同时使用,配置了supportedMediaTypes,就要额外配置ByteArrayHttpMessageConverter。

<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <property name="prettyPrint" value="true"/>
    <property name="supportedMediaTypes">
        <list>
            <value>text/html;charset=UTF-8</value>
            <value>application/json;charset=UTF-8</value>
        </list>
    </property>
    <property name="objectMapper">
        <bean class="com.fasterxml.jackson.databind.ObjectMapper">
            <!-- 处理responseBody 里面日期类型 -->
            <property name="dateFormat">
                <bean class="java.text.SimpleDateFormat">
                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"/>
                </bean>
            </property>
        </bean>
    </property>
</bean>