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 相关文章推荐
jquery实现点击弹出层效果的简单实例
Mar 03 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
jquery分割字符串的方法
Jun 24 Javascript
JavaScript构造函数详解
Dec 27 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
Mar 30 Javascript
vue使用axios跨域请求数据问题详解
Oct 18 Javascript
Angular2+如何去除url中的#号详解
Dec 20 Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 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
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php加密解密实用类分享
2014/01/07 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python获取本机外网ip的方法
2015/04/15 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
基于pip install django失败时的解决方法
2018/06/12 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
python scatter函数用法实例详解
2020/02/11 Python
深入浅析python的第三方库pandas
2020/02/13 Python
python为什么要安装到c盘
2020/07/20 Python
python爬虫要用到的库总结
2020/07/28 Python
北京天润融通.net面试题笔试题
2012/02/20 面试题
最新大学生自我评价
2013/09/24 职场文书
经贸日语毕业生自荐信
2013/11/03 职场文书
新闻学毕业生自荐信
2013/11/15 职场文书
旅游网创业计划书
2014/01/31 职场文书
高三霸气励志标语
2014/06/24 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android