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移出节点removeChild()使用介绍
Apr 03 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
jQuery使用$.ajax进行即时验证实例详解
Dec 11 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
Jan 19 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
Feb 08 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
JS三级联动代码格式实例详解
Dec 30 Javascript
vue 组件简介
Jul 31 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
jquery选择器(常用选择器说明)
2010/09/28 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
Python使用minidom读写xml的方法
2015/06/03 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Django实现发送邮件功能
2019/07/18 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
python语言是免费还是收费的?
2020/06/15 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
中国梦演讲稿教师篇
2014/04/23 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
公司财务部岗位职责
2015/04/14 职场文书
党员承诺书范文2015
2015/04/27 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
JavaScript控制台的更多功能
2021/04/28 Javascript
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
AngularJS实现多级下拉框
2022/03/25 Javascript
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP