2012-08-03 29 views
1

執行java功能我有這個jsp頁面 -JSP - 通過的onsubmit

<%@page import="java.text.Normalizer.Form"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    </head> 
    <body> 

     <legend>Create new customer</legend> 
      <%! 
     boolean checkForm(Form theForm) 
     { 
      // some checks on "theForm" .. 
      return false ; 
     } 
     %> 
     <form action="CreateCustomerServlet" method="GET" onsubmit=<%=checkForm() %>> 
      // form's fields .. 
      <input type="submit" value="Create customer" /> 
     </form> 
     </fieldset> 
    </body> 
    </html> 

我試圖做的是,當按下submit它會去checkForm功能和檢查的形式,且僅當checkForm返回true它會去CreateCustomerServlet servlet。

但是,當我在submit按鈕在服務器上運行這個頁面,然後按我看到它從checkForm忽略,直接進入CreateCustomerServlet的servlet。

我知道,這與JavaScript很容易..但我想用java功能來做到這一點。

+1

您應該聲明/在一個Java類中定義的方法(或在servlet)不是在JSP。當表單被提交併且調用了servlet時,表單對象可以被填充並傳遞給方法。此外,'onsubmit'屬性用於在瀏覽器中調用Javascript函數,而不是(服務器端)Java方法。 – 2012-08-03 14:13:03

+0

是的..我知道你說什麼傳遞給servlet。但如果你可以在客戶端做到這一點,它看起來效率很低。所以最好的方式來檢查表單而不發送到sevlet是通過JavaScript,我是對嗎? – URL87 2012-08-03 14:38:27

+0

您可以通過驗證客戶端上的表單來保存到服務器的往返行程。但我認爲在服務器端也進行驗證是安全的(如果Javascript以某種方式失敗)。 – 2012-08-03 14:57:26

回答

2

評估JSP時,它會生成一個返回給用戶的靜態HTML頁面。在收到表單提交之前,服務器不會再次參與該過程。如果您確實需要從onsubmit處理程序執行某些服務器端行爲,則需要通過AJAX進行操作。

0

問題是你不能從客戶端直接調用java函數(放在服務器上)。您可以在客戶端移動檢查邏輯並使用JavaScript。

0

您可以使用JavaScript爲您的要求