Я новичок весной mvc.I создали пример приложения, которое создает форму с полями Имя, возраст, метод ID.Controller являетсяSpring MVC исключение при проверке формы с помощью аннотаций
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView student() {
return new ModelAndView("home", "command", new Student());
}
@RequestMapping(value = "/addStudent", method = RequestMethod.POST)
public String addStudent(@Valid Student student,BindingResult result, Model model) {
if(result.hasErrors()) {
return "home";
}
model.addAttribute("name", student.getName());
model.addAttribute("age", student.getAge());
model.addAttribute("id", student.getId());
return "result";
}
Моя модель класса Student.java
public class Student {
private Integer age;
@NotEmpty @Email
private String name;
private Integer id;
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
}
он отлично работает, когда я поступил правильно данные, электронный идентификатор, но это дает исключение, когда я Введите недопустимый адрес электронной почты или NULL. Вместо того, чтобы давать ошибку Он должен отображать соответствующее сообщение об ошибке. Мой взгляд Home.jsp является
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC Form Handling</title>
</head>
<body>
<h2>Student Information</h2>
<form:form method="POST" action="/controller/addStudent" >
<table>
<tr>
<td><form:label path="name">Name</form:label></td>
<td><form:input path="name" /></td>
<form:errors path="name" >Invalid Name</form:errors>
</tr>
<tr>
<td><form:label path="age">Age</form:label></td>
<td><form:input path="age" /></td>
</tr>
<tr>
<td><form:label path="id">id</form:label></td>
<td><form:input path="id" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Submit"/></td>
</tr>
</table>
</form:form>
</body>
</html>
Исключение:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/home.jsp at line 12
9: <form:form method="POST" action="/controller/addStudent" >
10: <table>
11: <tr>
12: <td><form:label path="name">Name</form:label></td>
13: <td><form:input path="name" /></td>
14: <form:errors path="name" >Invalid Name</form:errors>
15: </tr>
первопричиной
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute
вы аннотированное имя с @Email это ошибка typo? –
для тестирования Я дал аннотацию @Email для имени. –
Пожалуйста, напишите исключение, которое вы получите. – david99world