Struts2 ExecuteAndWait拦截器
我在流程完成后关闭wait.jsp时遇到问题。配置工作正常,并成功将结果发送到另一个页面 但是,在处理文件下载时,文件由客户端完成下载,但等待页面仍然存在。我想要它 自动关闭。我已经找过了,但运气不好。Struts2 ExecuteAndWait拦截器,struts2,Struts2,我在流程完成后关闭wait.jsp时遇到问题。配置工作正常,并成功将结果发送到另一个页面 但是,在处理文件下载时,文件由客户端完成下载,但等待页面仍然存在。我想要它 自动关闭。我已经找过了,但运气不好。 有人能帮忙吗。Struts2似乎能处理另一个页面的结果成功,但不能处理结果流。这就是我所要做的 struts.xml <action name="DownloadReport" class="com.actionet.fivs.action.DownloadReportAction">
有人能帮忙吗。Struts2似乎能处理另一个页面的结果成功,但不能处理结果流。这就是我所要做的 struts.xml
<action name="DownloadReport" class="com.actionet.fivs.action.DownloadReportAction">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="params" />
<interceptor-ref name="execAndWait">
<param name="delay">100</param>
<param name="delaySleepInterval">50</param>
</interceptor-ref>
<result name="wait">/WEB-INF/jsp/wait.jsp</result>
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}" </param>
<param name="bufferSize">4096</param>
</result>
100
50
/WEB-INF/jsp/wait.jsp
应用程序/八位字节流
输入流
附件filename=“${filename}”
4096
wait.jsp
<meta http-equiv="refresh" content="2;url=<s:url includeParams="all" />"/>
//jquery to close the window when Action with success response
$(document).ready(function() {
$.ajax( {
traditional: true,
type: "POST",
url: "DownloadReport.action",
data:"reportName="+reportName,
dataType: "text",
success: function(data, success) {
if(data.indexOf("success") > -1){
setTimeout(function() {
window.open('','_self','');
window.close();
return false;
}, 5000);
}
}
});
});
//jquery在操作成功响应时关闭窗口
$(文档).ready(函数(){
$.ajax({
传统的:是的,
类型:“POST”,
url:“DownloadReport.action”,
数据:“reportName=“+reportName,
数据类型:“文本”,
成功:功能(数据,成功){
if(data.indexOf(“success”)>-1){
setTimeout(函数(){
窗口。打开(“”,“”,“”);
window.close();
返回false;
}, 5000);
}
}
});
});
通常,wait.jsp应该包含自动刷新页面的指令。这样:如果您不想显示wait页面,那么应该重定向到其他页面并允许从中下载文件。Mies,我的wait.jsp页面中有这一行,但它仍然不起作用。显示struts.xml中的操作映射。500 50/WEB-INF/jsp/wait.jsp