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>
时间: 2024-11-08 11:39:11

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

spring boot中log4j冲突问题和解决办法

Spring Boot中自带了log4j日志管理.写法应该是: private static final Logger logger = Logger.getLogger(XXX.class); 而不是: private Logger logger = LoggerFactory.getLogger(XXX.class); 这两个类属于的包不同,前者属于log4j-over-slf4j-1.7.25.jar:后者属于slf4j-api-1.7.25.jar.两个jar包都属于org.slf4j下

linux中无 conio.h的解决办法

conio.h不是C标准库中的头文件,在ISO和POSIX标准中均没有定义.conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等.大部分DOS,Windows,Phar Lap,DOSX,OS/2等平台上的C编译器提供此文件,UNIX和Linux平台的C编译器本身通常不包含此头文件,但已经有其兼容包,可参考: http://conio.sourceforg

GDI+中发生一般性错误的解决办法(转载)

今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现"GDI+中发生一般性错误"的异常.于是开始"摆渡",并寻找到了解决办法:赋予 NETWORK SERVICE 帐户以写权限. 以下为晚上寻找到的资料: 在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致"GDI+ 中发生一般性错误"的发生,通常有以下三种

MySQL集群架构以及本人配置过程中出现的问题及解决办法

首先说下MySQL的优缺点 优点 解决单点故障 自动实现数据冗余 缺点就是维护起来太麻烦. 集群的条件就是所有的机器上都要安装MySQL的集群软件,我安装的是MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm的rpm包,不是源码包安装.如果系统里面安装了mysql-server等数据库服务软件的要自行写在掉即可. MySQL集群中有三种角色,下面是三种角色以及其的作用 角色 数据节点:ndbd节点 存储在表里的数据(表中的记录) SQL节点:不存储数据,供用户访问和

新建解决方案 在解决方案中添加项目中,解决方案消失的解决办法

新建空白解决方案的步骤:文件--新建项目--其他项目类型--Visual Studio 解决方案 这样就建立出了一个空白解决方案. 然后在资源管理器中可以添加项目,但是添加项目的时候会发现,解决方案消失了,解决办法  工具--选项--项目和解决方案(如果看不到这个,在下方有一个显示所有设置打勾),然后右边有一个 总是显示解决方案.勾上,解决方案就出现了 记录一下. 新建解决方案 在解决方案中添加项目中,解决方案消失的解决办法,布布扣,bubuko.com

基于H.264协议的视频传输系统中遇到的问题以及解决办法

问题1.视频压缩解码模块在运用的时候出现错误:解码器再解码第二帧视频图片的时候出现异常 client: ../../decoder/T264dec.c:594:T264dec_decode_nal: Assertion `0' failed. Aborted 对于该问题的分析及解决过程为: 1.  修改数据类型,所有缓存区改为unsigned char类型(原来统一为char 类型),但是还是遇到一样的异常错误,问题没有解决. 2.  查看缓存区具体内容是否与服务器端压缩的数据是一致的的,对照数

MyEclipse迁移过程中Tomcat版本不一致的解决办法

MyEclipse迁移过程中Tomcat版本不一致的解决办法 下面就是在MyEclipse2013迁移被Tomcat6.0X绑定的项目迁移到MyEclipse2014 Tomcat8.0X,报如下problems那栏的错误: 看见这个迁移过程中Tomcat版本不一致的错误,知道了就比较简单,不知道的时候就比较难了,解决办法如下: 1.查找到MyEclipse里面的菜单栏里面的MyEclipse 2.点击MyEclipse里面的Migrate Projects选项后,就出现如下图: 3.点击上图里

关于Excel文件导入到Sqlserver2008中出现截断错误的解决办法

出现错误的可能原因: 1.数据库字段Varchar长度不够: 2.不能用Text类型: 3.数据中可能存在换行符: 4.数据项文本过长,超过4000: 5.前8行的最大长度不够大,后面有超过的. 解决办法: 1.修改Varchar长度为足够长: 2.替换掉换行符(可手工输入一个换行符,复制到替换文本框中,Office中可按住Alt键,从小键盘输入10,再松开Alt键): 3.第一行中记录设足够长,导入后再替换: 4.把Excel文件存为2007格式,可解决导入后很多数据项为NULL的问题: 5.

C#中WebClient中文乱码的解决办法

原文:C#中WebClient中文乱码的解决办法 第一次尝试: string question = textBox1.Text.ToString(); WebClient youdao = new WebClient(); youdao.Encoding = System.Text.Encoding.GetEncoding("GB2312"); Uri uri = new Uri("http://xxxxxxxxxxxxxx"); textBox1.Text =yo