jsp - выполнить Java-функцию через onsubmit

У меня есть эта страница 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 и прямо перейти к CreateCustomerServlet сервлет

Я знаю, что с Javascript это очень легко... но я хочу сделать это с помощью функции Java.

3 ответа

Решение

Когда JSP оценивается, он создает статическую HTML-страницу, которая возвращается пользователю. Сервер больше не будет участвовать в процессе, пока не получит отправку формы. Если вы хотите, чтобы какое-либо поведение на стороне сервера выполнялось из onsubmit обработчик, вам нужно будет сделать это через AJAX.

Вы можете использовать JavaScript для вашего требования

Проблема в том, что вы не можете напрямую вызвать функцию Java (которая размещена на сервере) со стороны клиента. Вы можете переместить свою логику проверок на стороне клиента и использовать для этого JavaScript.

Другие вопросы по тегам