Регистрационная форма Thymeleaf выбрасывает IllegalStateException - PullRequest
0 голосов
/ 05 января 2019

Я учусь на Spring Boot 2.1.1. Я сделал регистрационную форму для моего сайта.

У меня есть форма в моем register.html:

<form method="post" th:action="@{/reg}" th:object="${user}">
   <input type="text" name="email" th:field="*{emailAddress}">Email 
   address</input>
   <input type="text" name="password" th:field="* 
   {password}">Password</input>
   <button type="submit">Submit</button>
</form>

Я ввел пользовательский объект User в модель в Controller:

@RequestMapping("/register")
public String register(Model model){
    System.out.println("marker 0");   
    model.addAttribute("user", new User());
    System.out.println("marker 1");
    return "register"; //returns the register.html view
}

Эти маркеры не отображаются на консоли.

Это код, который должен отлавливать данные, отправленные обратно из register.html:

@PostMapping("/reg")
    public String registerConfirmation(@ModelAttribute("user") User user, 
    Model model){
        // some code to proccess data
        return "registerconfirmation";
    }

Пользователь - это простая сущность с геттерами и сеттерами:

@Entity
public class User implements Serializable {

@Id
private Long id;


private String emailAddress;
private String password;
private String firstName;
private String lastName;
private int zipCode;


public User(){

}

Вот мое исключение:

Caused by: java.lang.IllegalStateException: Neither BindingResult nor 
plain target object for bean name 'user' available as request attribute

Относительно зависимостей:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
   <version>2.1.1.RELEASE</version>
</dependency>

<dependency>
   <groupId>org.thymeleaf.extras</groupId>
   <artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>

Всегда выбрасывает это исключение, независимо от того, что я делаю. Я сравнил свой код с несколькими кодами в Интернете, я использовал все необходимое, что мне кажется. Могу поспорить, что я не прав. Может быть, что-то не рекомендуется? Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, код или трассировка стека.

Я очень благодарен за вашу помощь!

1 Ответ

0 голосов
/ 05 января 2019

Попробуйте удалить @ModelAttribute ("пользователь"), @ModelAttribute используется для доступа к атрибуту запроса, данные формы находятся в теле запроса или параметрах.

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