@Amantosss

Как передать Юзера?

У меня есть задание сделать нового юзера (использую Spring Boot) и сначала я сделал через ссылку на страницу создания нового юзера, через гет запрос, контроллер ловит и передает в Model аттрибутом нового пустого юзера, а в форме уже заполняются поля, с помощью Thymeleaf и передается на пост контроллер, но когда я подключил Bootstrap там нет никакой переадресации, а просто открывается вкладка без подгрузки (видимо тут JS) и я не пойму как передать пустого Юзера, ведь гет запроса нет, все динамически, никак не могу понять как это реализовать
  • Вопрос задан
  • 457 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Spring
Java Software Engineer
Здравствуйте!
Форму регистрации нужно отправлять не GET запросом, а POST запросом.
С учетом того, что вы используете thymeleaf вы можете саму форму привязать к объекту и получить сразу готовый объект. Обратите внимание на тег th:object
https://o7planning.org/ru/12385/using-thymeleaf-th...

Вот, хороший пример:
https://stackoverflow.com/questions/32045271/how-t...
<form th:action="@{/the-action-url}" method="post"
    th:object="${myEntity}">

    <div class="modal-body">
        <div class="form-group">
            <label for="name">Name</label> <input type="text"
                class="form-control" id="name" th:field="*{name}"> </input>
        </div>

        <div class="form-group">
            <label for="description">Description</label> <input type="text"
                class="form-control" id="description"
                th:field="*{description}"> </input>
        </div>
    </div>
</form>


Ну или же в контроллере получаете просто ссылку на объект User user.
Далее через сеттеры устанавливаете значения полученные из @ModelAttribute и сохраняете.
Приведу пример:
@PostMapping("/register")
public String register(
@ModelAttribute("username") String username,
@ModelAttribute("password") String password,
User user
) {
user.setUsername(username);
user.setPassword(password);
userRepository.save(user);
return "index";
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы