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获取IUSR_机器名和IWAM_机器名帐号的密码
Dec 06 Javascript
JavaScript 拾碎[三] 使用className属性
Oct 16 Javascript
JavaScript通过代码调用Flash显示的方法
Feb 02 Javascript
JavaScript中三种异步上传文件方式
Mar 06 Javascript
基于jquery实现无限级树形菜单
Mar 22 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 Javascript
Moment.js实现多个同时倒计时
Aug 26 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 Javascript
JS创建或填充任意长度数组的小技巧汇总
Oct 24 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
js和php邮箱地址验证的实现方法
2014/01/09 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
prototype 的说明 js类
2006/09/07 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
python实现低通滤波器代码
2020/02/26 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
Python 中Operator模块的使用
2021/01/30 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
中专生学习生活的自我评价分享
2013/10/27 职场文书
好的自荐信包括什么内容
2013/11/07 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
教师群众路线心得体会
2014/11/04 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书