Когда я запускаю страницу и пытаюсь использовать форму с методом post, после отладки я вижу, что все поля модели получают нулевые значения. Я читаю на многих форумах, но
не могу решить проблему
Это мой класс UserController
@Controller
public class UserController {
private UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/add-user")
public String addEmployeeForm(Model model) {
model.addAttribute("user", new User());
return "add-user";
}
@PostMapping("/add-user")
public String addEmployee(@Valid @ModelAttribute (value = "user") User user, BindingResult bindingErrors) {
if(bindingErrors.hasErrors()) {
return "add-user";
}
userService.addUser(user);
return "redirect:/add-user";
}
И мой файл add-user.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Add Employee</title>
</head>
<body>
<form action="#" th:action="@{/add-user}" th:object="${user}" method="post">
<ul>
<li th:errors="*{userFirstName}" style="color: red"/>
<li th:errors="*{userLastName}" style="color: red"/>
<li th:errors="*{userName}" style="color: red"/>
<li th:errors="*{userPassword}" style="color: red"/>
</ul>
<table>
<tr>
<td><label th:text="#{label.firstname}">First Name</label></td>
<td><input type="text" th:field="*{userFirstName}"/></td>
</tr>
<tr>
<td><label th:text="#{label.lastname}">Last Name</label></td>
<td><input type="text" th:field="*{userLastName}"/></td>
</tr><tr>
<td><label th:text="#{label.username}">Username</label></td>
<td><input type="text" th:field="*{userName}"/></td>
<tr>
<td><input type="submit" value="Save"/></td>
</tr>
</table>
</form>
</body>
</html>
А это мой репозиторий с методом add, который подключается к
базы данных и иметь UserService для работы с этим хранилищем
@Override
public void add(User user) {
try (Session session = sessionFactory.openSession()) {
if (alreadyExists(user.getUserName())) {
session.cancelQuery();
throw new ResponseStatusException(HttpStatus.CONFLICT,
String.format("User with username %s already exists", user.getUserName()));
}
session.save(user);
} catch (HibernateException he) {
System.out.println(he.getMessage());
throw he;
}
}
Вы знаете, что это за проблема? Связь с базой данных или в классах или в html-файле?