1

私はこのjspページを持っています -

<%@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

しかし、サーバーでこのページを実行してsubmitボタンを押すと、 から無視され、checkForm直接CreateCustomerServletservlet に移動することがわかります。

私はjavascriptでこれを行うのは非常に簡単であることを知っています..しかし、Java関数でそれをやりたいです。

4

3 に答える 3

2

JSP が評価されると、ユーザーに返される静的な HTML ページが生成されます。サーバーは、フォームの送信を受信するまでプロセスに関与しません。ハンドラーからサーバー側の動作を実行したい場合はonsubmit、AJAX 経由で実行する必要があります。

于 2012-08-03T14:08:12.747 に答える
0

問題は、クライアント側から(サーバーに配置された)Java関数を直接呼び出すことができないことです。チェックロジックをクライアント側に移動し、そのために JavaScript を使用できます。

于 2012-08-03T14:08:25.870 に答える
0

要件にJavaScriptを使用できます

于 2012-08-04T09:48:07.407 に答える