2016-01-26 49 views
0

因此,我之前發佈了一個關於將excel文件與控制服務器端導出以防止用戶重新執行操作(Action method to export excel and prevent user from reprocessing the action till complete)的問題! 有一個fellah建議使用Execute和Wait Interceptor(Struts),這是處理後臺處理的一個很好的方法!執行struts操作並阻止用戶重新處理,直到完成

但是,問題是,我需要保持從那裏我做了出口頁面上,以便用戶可以與它進行交互(他只是不能導出,直到導出完成):

所以我發現了一個解決這個做客戶端:

function handler() { 
    $("#searchForm_exportExcelMdt").attr("disabled", false); 
} 
// export excel 
function exportExcel() { 
    console.log("toto is exporting .."); 
    $("#searchForm_exportExcelMdt").attr("disabled", true); 
    $.ajax({ 
       method : "GET", 
       url : "/myApp/view/mandat/recherche/doNothing.action", 
       traditional : true, 
       success : function(data) { 
        $(location).load('exportExcelMdt.action',handler).attr('href','exportExcelMdt.action'); 
       } 
      }); 
} 

所以這基本上將禁用按鈕,調用行動「doNothing()」,它只是返回成功。然後,操作exportExcelMdt(導出文件)將在重新激活按鈕之前調用處理程序,並且我會回想當前頁面(類似於刷新)來強制文件被下載(不確定,但沒有它沒有文件被生成)。

所以這工作在Chrome瀏覽器,IE瀏覽器,但不是Firefox! :'(

即使沒有在控制檯上顯示的錯誤,我只是重定向到我的錯誤頁面

如果有人知道什麼是這種情況的原因或如何停用輸入Firefox的那會。是非常有益的

!PS:你可以找到JSP,struts.xml中,行動的前一個線程上的鏈接描述

+0

這不是Java的問題,而是一個JavaScript和HTML的問題,所以我改變了標籤 –

+0

是我們對此深感抱歉!所以用來問java問題大聲笑感謝您的編輯;) –

回答

0

而不是

$("#searchForm_exportExcelMdt").attr("disabled", true); 

$("#searchForm_exportExcelMdt").attr("disabled", false); 

使用

// Use disabled string as attribute instead of true 
$("#searchForm_exportExcelMdt").attr("disabled", "disabled"); 

// remove attribute instead of set it to false 
$("#searchForm_exportExcelMdt").removeAttr("disabled"); 
+0

仍然是與Firefox相同的錯誤:'( «沒有»,URL,ou函數過濾器預期,但«progid»找到分析錯誤的價值«過濾器»。 Déclaration中止希望你瞭解它 對不起,我已經從法語翻譯的消息。 –

相關問題