Я пытаюсь показать ошибки проверки в моей форме, но я не могу ее реализовать.
Я пытаюсь передать нулевые значения, я получаю сообщение проверки гибернации, но не вижу проверки формы?
Вот мой код:
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String saveForm(@Valid Users users,Model model,Errors errors) {
if(errors.hasErrors()) {
return "registerPage";
}
else {
model.addAttribute("message","Registered................");
System.out.println("Save Users TEST------------------------------------>");
userRepository.save(users);
return "register-success";
}
}
Вот исключение:
Ошибка поля в объекте «пользователи» в поле «зарплата»: отклоненное значение
[ноль]; коды
[NotNull.users.salary, NotNull.salary, NotNull.java.lang.Integer, NotNull];
аргументы
[Org.springframework.context.support.DefaultMessageSourceResolvable:
коды [users.salary, salary]; аргументы []; сообщение по умолчанию [зарплата]];
сообщение по умолчанию [не должно быть пустым] Ошибка поля в объекте 'users' в
поле 'dept': отклоненное значение []; коды
[Size.users.dept, Size.dept, Size.java.lang.String, размер]; аргументы
[Org.springframework.context.support.DefaultMessageSourceResolvable:
коды [users.dept, dept]; аргументы []; сообщение по умолчанию [dept], 10,2];
сообщение по умолчанию [Длина должна быть от 2 до 10] Ошибка поля в
объект 'users' в поле 'name': отклоненное значение []; коды
[Size.users.name, Size.name, Size.java.lang.String, размер]; аргументы
[Org.springframework.context.support.DefaultMessageSourceResolvable:
коды [users.name, name]; аргументы []; сообщение по умолчанию [имя], 30,2];
сообщение по умолчанию [Длина должна быть от 2 до 30]]
Вот мой пользователь Pojo:
public class Users implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private Integer id;
@Column(name="name")
@NotNull
@Size(min=2,max=30,message="Length should be in between 2 to 30")
private String name;
@Column(name="salary")
@NotNull
private Integer salary;
@Column(name="dept")
@NotNull
@Size(min=2,max=10,message="Length should be in between 2 to 10")
private String dept;
....
}
Вот моя HTML-форма (с использованием тимелина):
<h1 th:text="${message}" align="center"></h1>
<div class="container">
<h2>Registration form</h2>
<form class="form-horizontal" th:object="${registerCommand}" th:action="@{/rest/users/register}" method="post">
<div class="form-group">
<label for="name">Username:</label>
<input type="text"
class="form-control" id="name" placeholder="Enter Name"
name="name" th:field="*{name}"> <br />
<p th:if="${#fields.hasErrors('name')}" th:errors="*{name}" th:field="*{name}"
class="alert alert-danger"></p>
</div>
<div class="form-group">
<label for="dept">Department:</label>
<input type="text"
class="form-control" id="dept" placeholder="Enter Department"
name="dept" th:field="*{dept}"> <br />
<p th:if="${#fields.hasErrors('dept')}" th:errors="*{dept}" th:field="*{dept}"
class="alert alert-danger"></p>
</div>
<div class="form-group">
<label for="salary">Salary:</label> <input type="text"
class="form-control" id="salary" placeholder="Enter salary"
name="salary" th:field="*{salary}"> <br />
<p th:if="${#fields.hasErrors('salary')}" th:errors="*{salary}" th:field="*{salary}"
class="alert alert-danger"></p>
</div>
<button type="submit" class="btn btn-sucess">Submit</button>
</form>
</div>