Spring:IE中@responseBody出现文件下载的解决办法

时间:2021-02-03 15:29:43

原因:Easyui中form提交,对于success方法就是个比较纠结的问题。或者说,对于Spring中的@ResponseBody返回的Json就是个比较麻烦的问题。

   首先说说@ResponseBody的作用,这个注解将返回值转化为json字符串,而且在返回时添加response头信息,类似于设置 response.setContentType("application/json; charset=UTF-8");"),但是json这玩意儿IE不认识,就当做文件处理了,也就会弹出“是否下载”的对话框来。

Spring:IE中@responseBody出现文件下载的解决办法

既然是@ResponseBody注解上的问题,也就是说,在@ResponseBody对应的controller里面设置的头部信息肯定会在外面被覆盖掉。还好Spring确实考虑了这一点。

	<mvc:annotation-driven ignoreDefaultModelOnRedirect="true">
		<!-- 这里配置IE的json格式兼容性 -->
	   <mvc:message-converters register-defaults="false">
               <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
               <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                  <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
               </bean>
               <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                  <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
               </bean>
            </mvc:message-converters>
	</mvc:annotation-driven>