showModelDialog弹出文件下载窗口的使用示例


Posted in Javascript onNovember 19, 2013

当点击我要修改时,需要在后台生成excel文件,同时需要提供下载文件功能。
生成excel文件容易、弹出”文件下载”也容易:
点击按钮,跳转到action中,在该action中生成Excel文件,填充数据,保存到临时文件夹中,然后在按钮的Click事件中,根据模板生成Excel报表,填充数据,保存到临时文件夹,然后output.wirte()。一切看起来很顺利。
Action如下(弹出"文件下载"窗口):

/**
*@paramresponse
*@paramdownloadFile
*/
privatevoidclientResponse(HttpServletResponseresponse,FiledownloadFile,StringfileName){
try{
response.reset();
response.setContentType("application/octet-stream");
//用来弹出保存窗口,设置为attachment
response.setHeader("Content-Disposition","attachment;filename="+newString(fileName.getBytes(),"ISO-8859-1"));
InputStreaminput=newFileInputStream(downloadFile);
OutputStreamoutput=response.getOutputStream();
intc;
//读取流并写入到文件中
while((c=input.read())!=-1){
output.write(c);
}
output.flush();
output.close();
input.close();
}catch(Exceptione){
}
}

但是当测试的时候,发现我点击”我要修改”按钮,总是会弹出一个新的窗口。百度一下,加了这段:<basetarget="_self">,这个表示在当前页打开页面。
如下:
base:为页面上的所有链接规定默认地址或默认目标
target:跳转到的目标页
<basetarget=_blank><!--在空白页打开-->
<basetarget=_parent><!--在当前页的上一页(父类)打开-->
<basetarget=_search><!--在浏览器地址栏打开-->
<basetarget=_self><!--在当前页打开-->
<basetarget=_top><!--在最初(首页)页打开-->
这个问题解决了,但是新的问题又来了,就是文件不可以下载。所以我有没有那种方法既可以在本页打开,又可以提供下载呢?想到了iframe框架。我们可以设置一个看不见的iframe框架,然后target=iframName就可以解决了。

<iframe id="download" name="download" height="0px" width="0px"></iframe>
<base target="download">

这<base...>位于<head></head>之间
Javascript 相关文章推荐
JS中令人发指的valueOf方法介绍
Feb 22 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
JavaScript创建对象方法实例小结
Sep 03 Javascript
JavaScript中AOP的实现与应用
May 06 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 #Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 #Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
Nov 19 #Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 #Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 #Javascript
jQuery控制iFrame(实例代码)
Nov 19 #Javascript
jquery 检测元素是否存在的实例代码
Nov 19 #Javascript
You might like
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
python实现计算倒数的方法
2015/07/11 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
python可以用哪些数据库
2020/06/22 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
python从PDF中提取数据的示例
2020/10/30 Python
基于Python实现粒子滤波效果
2020/12/01 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
社区党建工作方案
2014/06/10 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
初中政治教学反思
2016/02/23 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫