怎么防止点击一次按钮触发多次下载事件?
如题:我要实现的功能是这样的,页面有个
‘导出’按钮,当我点击这个按钮时会发出请求到action,然后action会根据条件查询数据,然后会生成一个excel文件并将数据写入这个excel文件中,最后把这个excel文件输出到本地,功能就是这样的。
我的问题是,当使用ie浏览器时点击‘导出’action会收到多次请求(firefox没有这个问题),然后就会分多次执行上边的过程。下边是我action中的代码,请大侠们指点一下我该怎么做才能让用ie导出时也只导出一次呢,谢了
@Override
public String execute() throws Exception {
if ("export".equals(op)) {
export();
}
long currentUserId = getCurrentUserId();
pageVo = smsWebService.queryUnsentMt(termId, content, begDate, endDate,
currentUserId, userId);
return SUCCESS;
}
private void export() throws Exception {
……//查询数据并生成excel输出到本地
}
用ie时action中的execute会执行多次,怎么做能防止ie这种会发出多次请求的问题呢?
------解决方案--------------------<s:token/>
------解决方案--------------------
没看到你的export()代码,也没看到你页面上的代码不好说,建议你debug调试下,你执行完export()后,
long currentUserId = getCurrentUserId(); pageVo = smsWebService.queryUnsentMt(termId, content, begDate, endDate, currentUserId, userId); return SUCCESS; 这些代码还有没有执行
------解决方案--------------------百度搜搜<s:token/>的使用,配置下就行,不需要额外的学习。
------解决方案--------------------<!-- <interceptor-ref name="token" /> -->这个不要注销,页面上在form里面,加上<s:token/>就行了,记得引入s标签<%@ taglib uri="/struts-tags" prefix="s" %>
------解决方案--------------------楼主眼神好凶残
------解决方案--------------------------解决方案--------------------点击按钮出发多次提交,在ff下没有问题,但是在IE下有问题,多数是JS脚本不兼容导致的。能够看下jsp和js文件
------解决方案--------------------你用firebug看下把,看看你点击的时候发了几次请求,IE上面也找个工具看下,应该是Js的问题。点击的时候出发了两次事件
------解决方案--------------------在点第一次导出的时候把按钮置灰,导出后在启用按钮。