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 相关文章推荐
JavaScript QueryString解析类代码
Jan 17 Javascript
js 复制或插入Html的实现方法小结
May 19 Javascript
Javascript动态绑定事件的简单实现代码
Dec 25 Javascript
js设置组合快捷键/tabindex功能的方法
Nov 21 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
js动态切换图片的方法
Jan 20 Javascript
Jquery对select的增、删、改、查操作
Feb 06 Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 Javascript
JS原型与原型链的深入理解
Feb 15 Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
在Vue中使用mockjs代码实例
Nov 25 Vue.js
基于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实现小型站点广告管理(修正版)
2006/10/09 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
JavaScript 乱码问题
2009/08/06 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
DOM事件探秘篇
2017/02/15 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
python多线程并发实例及其优化
2019/06/27 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
由面试题加深对Django的认识理解
2019/07/19 Python
python爬取音频下载的示例代码
2020/10/19 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
军训心得体会
2013/12/31 职场文书
2014年小学德育工作总结
2014/12/05 职场文书