2014-02-26 92 views
0

注意:幾個小時前,我還在Javaranch中發佈了此問題。鏈接爲http://www.coderanch.com/t/629456/JSP/java/Cancel-button-behaves-differently-Chrome。 我還沒有收到回覆。我在這裏發佈,看看我能否得到一個或兩個建議。當談到struts和JSP時,我也很初學,所以請讓我知道我是否應該提供更多的細節。取消按鈕在Firefox和Chrome中的行爲有所不同

問題是我的網頁上的取消按鈕在Chrome和Firefox瀏覽器中的行爲有所不同。

我的當前URL是 context path/importEmployee.do?method = load。

在我目前的頁面中,我上傳了一個CSV文件。這個頁面有兩個按鈕 - 好的和取消,這些按鈕是我遇到的麻煩(我會在短時間內來到這個部分)。相關的JSP部分如下。

<html:form action="importEmployee?method=save" method="POST" styleId="importEmployee" enctype="multipart/form-data">  
....... some headers and title bar and stuff... and then as follows. 
<div class="contentSection"> 
    <table border="0" class="formTable"> 
     <html:hidden property = "selectedSet" /> 
     <tr> 
      <td class="formLabel"><label for="file">Download File:</label> 
      </td> 
      <td> 
       <span> 
        <a class="buttonStyle" rel="nofollow">Download Sample CSV</a>         
       </span> 
      </td> 
     <tr> 
      <td class="spacerCell"> </td> 
     </tr> 
     <tr>  
      <td class="formLabel"><label for="file">CSV File:</label></td> 
      <td><html:file property="importFile" styleId="importFile" size="60" maxlength="120" /></td> 
     </tr> 
     <tr> 
      <td class="spacerCell"> </td> 
     </tr> 
    </table> 
</div> 
<table border="0" class="footerBar"> 
    <tr> 
     <td id="footerLeft">      
      <html:submit value=" OK " title=" OK " styleClass="button"> 
      </html:submit>  
      <span> 
       <a class="buttonStyle" href="<%=request.getContextPath()%>/employees.do?method=load"> Cancel </a>        
      </span>     
     </td> 
     <td id="footerRight" class="pagination">  
     </td> 
    </tr> 
</table> 

一旦我上傳CSV文件,然後點擊OK,相應的動作類方法被調用,我的網址更改 - 上下文路徑/ importEmployee.do方法=保存

該頁面基本上包含導入統計信息,未處理記錄的錯誤消息等。 此頁面還有一個ok和一個取消按鈕。 對應的JSP部分如下。

<html:form action="importEmployee?method=save" method="POST" styleId="importEmployee" enctype="multipart/form-data"> 
    <table border="0" > 
     <tr> 
     <td id="leftEdge"><img src="<%= request.getContextPath()%>/images/new/edge_left.gif" width="30" 

HEIGHT = 「321」 ALT = 「」/>

 ..... some processing and then... 

     <table border="0" class="footerBar"> 
      <tr> 
       <td id="footerLeft">  
        <span> 
         <a class="buttonStyle" href="<%=request.getContextPath()%>/employees.do?method=load"> OK </a> 

        </span> 
        <input name="cancel" id="cancel" type="submit" class="button" value="Cancel" onclick="goBack(); return false;" />  
       </td> 
       <td id="footerRight" class="pagination">  
       </td> 
      </tr> 
     </table> 

所以,如果我點擊第二頁(上下文路徑/ importEmployee.do取消?方法=保存),我回到第一個URL頁面,即 上下文路徑/ importEmployee.do?method = load。 但是這部分在Firefox和Chrome瀏覽器中的表現有所不同。 在Chrome中,如果我在第二頁中單擊取消,我仍然可以在第一頁中看到上傳的文件名(第一個JSP中的隱藏屬性是文件名)。如果我點擊確定,我可以再次執行處理,就像在第一頁上首次單擊確定所做的那樣。 但是,當我在Firefox瀏覽器中運行我的應用程序時,如果在第二頁中單擊取消,上傳的文件名稱會在第一頁中顯示'沒有選擇文件'。因此,要再次導入員工,我需要再次上傳新的/相同的CSV文件。

我不希望文件出現在第一頁,當我點擊第二頁中的取消時,即使我在Chrome中運行我的應用程序。是的,我要求文件名稱是一個隱藏的屬性。這是因爲根據文件中的數據,可以完成不同類型的處理,其中一些處理需要在另一個頁面上從用戶處獲取額外輸入,第三個頁面處理。所以文件名應該傳遞給表單,但我不希望用戶再次上傳文件。

但是,如果用戶點擊取消,我不希望文件名保留在第一頁。但是這沒有發生。

所以我有兩個問題。爲什麼Chrome和Firefox中的行爲有所不同,有沒有一種方法可以糾正它在Chrome中的行爲方式?

+0

不確定這是否是瀏覽器限制,但它看起來必須是這樣。 – Chan

回答

0

已解決。

工作人員說這個取消按鈕的行爲是已知的行爲。單擊「取消」後,再次查看文件名稱是可以的。我們不應該在Mozilla中看到它。

對不起,我感到困惑和感謝我的問題。

相關問題