2013-05-22 55 views
0

我有一個要求,在點擊一個按鈕時,我必須清空文本區域,這是從文件填充的,並且需要清空文件內容。在瀏覽器刷新時,JSP scriptlet中的java方法正在調用

我的JSP頁面看起來像這樣

<%@page import="com.hcentive.rule.DisplayLog"%> 
<%@ page import="java.lang.*" import="java.util.Scanner" 
    import="java.io.FileReader" import="java.net.*"%> 

<% 
DisplayLog log = new DisplayLog(); 
log.display(); 
%> 

<html> 
    <body> 
    <script> 
     function validate() { 
      alert("clear clicked"); 
      document.getElementById("rule").value = ""; 
      <% 
       log.clear(); 
      %> 
     } 
     </script> 
     <br><br> 
     <FORM> 
      <textarea rows="20" cols="162" wrap="off" id="rule" ><%=log.getFileOutput()%></textarea> 
      <br><br> 
      <input type="button" value="Clear" onclick="validate();" > 
     </FORM> 
    </body> 
</html> 

在上面的代碼中,DisplayLog是一個Java類。 display方法用於讀取文件內容並寫入文本區域清除方法用於清空文件內容。

它工作正常,當我點擊清空按鈕它清空文本區域。我面臨的問題是,在瀏覽器刷新,log.clear()也被稱爲我不明白。

請別人幫忙。

回答

0

調用log.clear在JavaScript函數中沒有被調用這一事實在這裏是無關緊要的。當刷新頁面時,所有腳本都會被評估,包括這一個。在提交表單時清除文件內容可能是適當的,而不是在用戶清除表單時清除文件內容。但是,如果您希望在用戶清除表單時執行此操作,則可以使用AJAX呼叫服務器並清除日誌。

0

首先,您應該避免在JSP中使用腳本。

二,而不是使用Ajax:

  1. 創建一個servlet,可以在您的按鈕onClick文件
  2. 使用AJAX做結算的部分,並向 的servlet調用。然後servlet將清除服務器端的內容。
相關問題