Нулевые значения проекта Spring MVC в модели после метода post - PullRequest
0 голосов
/ 14 марта 2019

Когда я запускаю страницу и пытаюсь использовать форму с методом 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-файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...