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