Spring:IE中@responseBody出現文件下載的解決辦法


原因:Easyui中form提交,對於success方法就是個比較糾結的問題。或者說,對於Spring中的@ResponseBody返回的Json就是個比較麻煩的問題。

   首先說說@ResponseBody的作用,這個注解將返回值轉化為json字符串,而且在返回時添加response頭信息,類似於設置 response.setContentType("application/json; charset=UTF-8");"),但是json這玩意兒IE不認識,就當做文件處理了,也就會彈出“是否下載”的對話框來。

既然是@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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM