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 面向对象技术基础教程
Mar 03 Javascript
javascript onmouseout 解决办法
Jul 17 Javascript
jQuery Ajax 实例全解析
Apr 20 Javascript
简单的Jquery全选功能
Nov 07 Javascript
jquery获取及设置outerhtml的方法
Mar 09 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
js中getter和setter用法实例分析
Aug 14 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
Openlayers实现距离面积测量
2020/09/28 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
Python中使用asyncio 封装文件读写
2016/09/11 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
python re模块常见用法例举
2021/03/01 Python
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
有创意的广告词
2014/03/18 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
工程负责人任命书
2014/06/06 职场文书
小学班级口号
2014/06/09 职场文书
客户答谢会活动方案
2014/08/31 职场文书
出租房屋协议书
2014/09/14 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
大学感恩节活动总结
2015/05/05 职场文书
企业法人任命书
2015/09/21 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫