Приложение с Thymeleaf и Spring Boot не имеет явного сопоставления для / error - PullRequest
0 голосов
/ 19 марта 2020

У меня проблема с приложением Spring MVC. Каждый раз, когда я запускаю приложение, появляется страница ошибки Whitelabel, но я не знаю почему. Я могу успешно построить свой код. Я уже пытался очистить и восстановить его, но ничего не изменилось. Я просмотрел код тысячи раз, но пока не знал ошибки. СООБЩЕНИЕ ОБ ОШИБКЕ СМ. НИЖЕ!

от PersonForm. java

package com.example.validatingforminput;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author student1
 */
public class PersonForm {
    @NotNull
    @Size(min=2, max=30)
    private String name;

    @NotNull
    @Min(18)
    private Integer age;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String toString() {
        return "Person(Name: " + this.name + ", Age: " + this.age + ")";
    }
}

от WebController. java

package com.example.validatingforminput;

import com.example.validatingforminput.PersonForm;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


/**
 *
 * @author student1
 */
@Controller
public class WebController implements WebMvcConfigurer{
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/results").setViewName("results");
    }

    @GetMapping("/")
    public String showForm(PersonForm personForm) {
        return "form";
    }

    @PostMapping("/")
    public String checkPersonInfo(@Valid PersonForm personForm, BindingResult bindingResult) {

        if (bindingResult.hasErrors()) {
            return "form";
        }

        return "redirect:/results";
    }
}

от ValidatingFormInputApplication. java

package com.example.validatingforminput;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ValidatingFormInputApplication {

    public static void main(String[] args) {
        SpringApplication.run(ValidatingFormInputApplication.class, args);
    }

}

из формы. html

<html>
    <body>
        <form action="#" th:action="@{/}" th:object="${personForm}" method="post"></form>
        <table>
            <tr>
                <td>Name:</td>
                <td><input type="text" th:field="*{name}" /></td>
                <td th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</td>
            </tr>
            <tr>
                <td>Age:</td>
                <td><input type="text" th:field="*{age}" /></td>
                <td th:if="${#fields.hasErrors('age')}" th:errors="*{age}">Name Error</td>
            </tr>
            <tr>
                <td><button type="sumbit">Submit</button></td>
            </tr>
        </table>
    </body>
</html>

из результатов. html

<html>
    <body>
        Congratulations! You are old enough to sign up for this site.
    </body>
</html>

Структура проекта:

project

Сообщение об ошибке:

error message

...