проверка формы весной в действии 5 - PullRequest
0 голосов
/ 23 февраля 2020

Я следую за исходным кодом spring в действии 5 на github, и я пишу свою собственную версию. Когда я оставляю имя пустым и фиксирую, я получаю неправильную страницу, подобную этой

enter image description here

, и вывод консоли: Field error in object 'taco' on field 'name': rejected value [];

Но правильная страница выглядит так: the taco design page with a warning message aroud the name text box

вот мой код:

design. html

 <label>give it a name:</label>

 <input type="text" th:field="*{name}">

  <span class="validationError"
      th:if="${#fields.hasErrors('name')}"
      th:errors="*{name}">Name Error</span>

designController. java

    @PostMapping
    public String postTaco(@Valid Taco taco, Order order, Errors errors) {
        if (errors.hasErrors()){
            return "design";
        }

        Taco taco1 = tacoRepo.save(taco);
        order.addDesign(taco1);
        return "order";
    }


Taco. java

@Size(min=5, message = "at least 5 characters")
private String name;

1 Ответ

0 голосов
/ 23 февраля 2020

Где проблема

designContrller. java

    @PostMapping
    public String postTaco(@Valid Taco taco, Order order, Errors errors) {
        if (errors.hasErrors()){
            return "design";
        }

        Taco taco1 = tacoRepo.save(taco);
        order.addDesign(taco1);
        return "order";
    }

решение :

    @PostMapping
    public String postTaco(@Valid Taco taco, Errors errors, Order order) {
        if (errors.hasErrors()){
            return "design";
        }

        Taco taco1 = tacoRepo.save(taco);
        order.addDesign(taco1);
        return "order";
    }

заключение:

Параметр Erroes errors должен видеть действительный параметр объекта, здесь Taco taco

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