0

ボタンをクリックすると、ファイルから入力されたテキスト領域を空にする必要があり、ファイルの内容も空にする必要があります。

私の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メソッドはファイルの内容を読み込んでテキスト領域に書き込むために使用され、 clearメソッドはファイルの内容を空にするために使用されます。

クリアボタンをクリックするとテキスト領域が空になります。私が直面している問題は、ブラウザの更新時にlog.clear()も呼び出され、理解できないということです。

誰か助けてください。

4

2 に答える 2

1

まず、JSP でスクリプトレットを使用しないようにする必要があります。

次に、代わりに Ajax を使用します。

  1. ファイルのクリア部分を実行できるサーブレットを作成する
  2. ボタンでajax を使用onClickし、サーブレットを呼び出します。次に、サーブレットはサーバー側のコンテンツをクリアします。
于 2013-05-22T10:35:38.870 に答える
0

log.clear の呼び出しが、呼び出されていない JavaScript 関数内にあるという事実は、ここでは関係ありません。ページが更新時にレンダリングされると、このスクリプトレットを含むすべてのスクリプトレットが評価されます。ユーザーがフォームをクリアするときではなく、フォームを送信するときにファイルの内容をクリアするのがおそらく適切です。ただし、ユーザーがフォームをクリアしたときにそれを実行したい場合は、AJAX を使用してサーバーを呼び出し、そこでログをクリアすることができます。

于 2013-05-22T10:34:51.547 に答える