1

I am trying to find a way to invoke a piece of java code within the JSP using HTML form

  <form method="get" action="invokeMe()">

       <input type="submit" value="click to submit" />

  </form>


  <%
     private void invokeMe(){
       out.println("He invoked me. I am happy!");   
     }
  %>

the above code is within the JSP. I want this run the scriptlet upon submit

I know the code looks very bad, but I just want to grasp the concept... and how to go about it.

thanks

4

5 回答 5

5

您可以使用Ajax将表单提交给servlet并评估 java 代码,但要留在同一个窗口中。

<form method="get" action="invokeMe()" id="submit">

       <input type="submit" value="click to submit" />

</form>

<script>
    $(document).ready(function() {
        $("#submit").submit(function(event) {
            $.ajax({
                type : "POST",
                url : "your servlet here(for example: DeleteUser)",
                data : "id=" + id,
                success : function() {
                    alert("message");
                }
            });
            $('#submit').submit(); // if you want to submit form
        });
    });
</script>
于 2013-04-16T09:49:46.277 回答
3

对不起,不可能。

Jsp 躺在 server一边并html继续播放,client side除非不做 arequest你不能这样做:)

于 2013-04-16T09:17:22.870 回答
3

你不能写java methodin scriptlet。因为在compilation时间 code inscriptlet成为service方法的一部分。因此,方法中的方法是错误的。

您可以如何在下面的代码中编写java methods和调用init tagscriptlet

<form method="get" action="">

       <input type="submit" value="click to submit" />

  </form>

    <%
        invokeMe();

     %>

  <%!
       private void invokeMe(){
       out.println("He invoked me. I am happy!");   
     }
   %>
于 2013-04-16T09:19:17.363 回答
1

不可能。提交表单后,它会向服务器发送请求。您有 2 个选项:

让服务器在收到表单发送的请求时执行所需的操作

或者

使用 Javascript 在客户端上执行所需的操作:

 <form name="frm1" action="submit" onsubmit="invokeMe()"
 ...
 </form>

 <script>
 function invokeMe()
 {
 alert("He invoked me. I am happy!")
 }
 </script>
于 2013-04-16T09:41:15.560 回答
0

您不能这样做,因为 JSP 呈现发生在服务器端,而客户端永远不会invokeMe()在返回的 HTML 中接收 Java 代码(即函数)。无论如何,它不知道在运行时如何处理 Java 代码!

更重要的是,<form>标签不调用函数,它向属性中form指定的 URL发送 HTTP 。action

于 2013-04-16T09:12:25.190 回答