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模块模式分析
May 16 Javascript
js兼容标准的表格变色效果
Jun 28 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
通过判断JavaScript的版本实现执行不同的代码
May 11 Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
jQuery中prepend()方法使用详解
Aug 11 Javascript
详解JavaScript函数
Dec 01 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
js实现手机发送验证码功能
Mar 13 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 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
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
php中的观察者模式
2010/03/24 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
python调用cmd复制文件代码分享
2013/12/27 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
SVM基本概念及Python实现代码
2017/12/27 Python
python表格存取的方法
2018/03/07 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
产品陈列协议书(标准版)
2014/09/17 职场文书
倡议书范文大全
2015/04/28 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers