Я разрабатываю простое приложение Spring MVC. У меня есть controller
, называемые CustomerController
и customer-form.jsp
, для отображения моих form
и customer-confirmation.jsp
для отображения результата и Customer
для проверки формы.
Я пытаюсь выполнить проверку поля lastname
, которое не позволяет пользователю оставить его пустым. В контроллере я использую BindingResult, чтобы контролировать ввод данных пользователем, поэтому форма не должна позволять пользователю оставлять последнее имя пустым, но, к сожалению, его дозы. Понятия не имею, что не так.
@Controller
@RequestMapping("/customer")
public class CustomerController {
@RequestMapping("/showForm")
public String showForm(Model theModel){
theModel.addAttribute("customer",new Customer());
return "customer-form";
}
@RequestMapping("/processForm")
public String processForm(
@Valid @ModelAttribute("customer") Customer theCustomer,
BindingResult theBindingResult
){
if(theBindingResult.hasErrors()){
return "customer-form";
}
else{
return"customer-confirmation";
}
}
}
public class Customer {
private String firstName;
@NotNull(message = "is requiard")
@Size(min = 1)
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
форма клиента. jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>costomer form</title>
<style>
.error{color: red}
</style>
</head>
<body>
<form:form action="processForm" modelAttribute="customer">
FirstName: <form:input path="firstName"/>
<br/><br/>
LastName(*): <form:input path="lastName"/>
<form:errors path="lastName" cssClass="error"/>
<br/><br/>
<input type="submit" value="submit">
</form:form>
</body>
</html>
подтверждение клиента. jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${customer.firstName}
<br/><br/>
${customer.lastName}
hello costomet
</body>
</html>