1

クリックしたときにボタンを追加したいのですが、日付が表示されますが、ボタンが機能しません。

私のサーブレット:

package test.servlets; 

  import java.io.*;
  import javax.servlet.*;


      public class FunctionalTestServlet extends HttpServlet
        {

public void doGet(HttpServletRequest request,HttpServletResponse response)throws    

        ServletException, IOException {



     response.setContentType("text/html");
      PrintWriter out = response.getWriter();  
      String text = request.getParameter("montext");
      String fileName = request.getParameter("testclass");

      out.println("<b><font color='blue'>The text is :</font></b>" 
      + "<b>"+ text +"</b>" + "<br>");

      out.println("<b><font color='blue'>The File name is :</font></b>" 
              + "<b>"+ fileName+"</b>" + "<br>");


      out.println("<% public void executeTest() {" +

 " java.util.Date d = new java.util.Date();out.println(d.toString()); } %>");
 **out.println("<input type='submit' value='Execute Test'onclick='executeTest()'>");**

    }


}

jspページ:

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   

"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
   </head>
      <body>

    <html:file properties="tonFichier" name="tonForm"/>

    <form action="FunctionalTestServlet" enctype="multipart/form-data" method="get">
    <p>
  Type some text (if you like):<br>
  <input type="text" name="montext" size="30">
   </p>
    <p>
    Please specify a Test , or a set of tests:<br>
   <input type="file" name="testclass" size="40" >
    </p>
   <div>
  <input type="submit" value="Execute Test">

     </div>
   </form>
   </body>
  </html>

どんなアイデアでもよろしくお願いします

4

1 に答える 1

2

これは確かに間違っています:

out.println("<% public void executeTest() {" +

サーブレットでスクリプトレットコードを生成することはできません。スクリプトレットコードはJSPに属しています。JSPから返される(に送信されるout)テキストはすべて、クライアントに直接送信されます。したがって、ブラウザに配信されるHTMLには、サーバー側で評価されているはずのスクリプトレットコードが含まれます。

スクリプトレットはJSPにのみ表示できます。

さらに面白くするためにexecuteTest()、JavaScriptonclickハンドラーとしてJavaメソッドをアタッチしようとしています-決して機能しません:

out.println("<input type='submit' value='Execute Test'onclick='executeTest()'>")

実際、コードが壊れているのは非常に多くの方法であるため、完全な再考/書き直しが必要です。サーブレット、JSP、JavaScriptがどのように、いつ、どこで機能するかを理解することから始めます。

私はあなたの考えを理解し、何を推測しますか、それはJSPもサーブレットも必要としません。JavaScriptでハンドラーを記述onlickし、DOMを変更して現在の日付を出力するだけです。

于 2012-07-08T14:40:38.257 に答える