Struts2 ExecuteAndWaitInterceptor

时间:2015-03-18 00:51:31

标签: struts2

我在进程完成后关闭wait.jsp时遇到问题。配置工作正常,成功结果到另一个页面。

但是,在处理文件下载时,文件由客户端完成下载,但等待页面仍在那里。我想拥有它 自动关闭。我搜索过但没有运气。 有人可以帮忙。

1 个答案:

答案 0 :(得分:0)

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>

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);   
   }
  }      
});
});