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创建div 实现代码
Apr 27 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
Apr 23 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
js通过Date对象实现倒计时动画效果
Oct 27 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
详解如何创建并发布一个 vue 组件
Nov 08 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
详解vue中v-for的key唯一性
May 15 Vue.js
手写实现JS中的new
Nov 07 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
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
python中去空格函数的用法
2014/08/21 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
python 计算文件的md5值实例
2017/01/13 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
python模拟实现分发扑克牌
2020/04/22 Python
python 实现两个线程交替执行
2020/05/02 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
志愿者宣传口号
2014/06/17 职场文书
标准单位租车协议书
2014/09/23 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
旅游投诉信范文
2015/07/02 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
python实现简单反弹球游戏
2021/04/12 Python
Python打包exe时各种异常处理方案总结
2021/05/18 Python