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 如果改变span标签的是否隐藏属性
Oct 06 Javascript
jQuery图片的展开和收缩实现代码
Apr 16 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
Dec 07 Javascript
TypeScript学习之强制类型的转换
Dec 27 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
Jan 13 Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
vue项目中使用tinymce编辑器的步骤详解
Sep 11 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
详解VUE里子组件如何获取父组件动态变化的值
Dec 26 Javascript
JS实现拼图游戏
Jan 29 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
如何去掉文章里的 html 语法
2006/10/09 PHP
php 保留字列表
2012/10/04 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
Python获取脚本所在目录的正确方法
2014/04/15 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
20个常用Python运维库和模块
2018/02/12 Python
python 日志增量抓取实现方法
2018/04/28 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
2014年团员学习十八大思想汇报
2014/09/13 职场文书
公司离职证明标准范本
2014/10/05 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
党员身份证明材料
2015/06/19 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js