Thymeleaf: отображать глобальные ошибки по коду ошибки - PullRequest
1 голос
/ 15 октября 2019

Как я могу отображать несколько глобальных ошибок в своих шаблонах по их соответствующему коду ошибки?

При отклонении результата привязки первым аргументом является error code. Как я могу использовать это при отображении ошибок в моем шаблоне?

Вариант использования: я использую настраиваемые правила проверки в своем контроллере (например, проверки на дублирование) и хочу показать глобальные ошибки в разных местах в моей форме,

Пример:

public String myPage(..., BindingResult result) {
    result.reject("errorCode1", "Error 1 happened");
    result.reject("errorCode2", "Error 2 happened");
    return "my-view"
}

В моем шаблоне Thymeleaf я могу отображать все ошибки сразу:

<form th:object="${myForm}" method="post">
    <p th:if="${#fields.hasGlobalErrors()}" th:errors="*{global}"></p>
</form>

Но как мне напечатать только ошибка с кодом ошибки errorCode1?

1 Ответ

0 голосов
/ 17 октября 2019

Я думаю, что нет способа сделать это. Я предлагаю вам создать другое поле в вашем объекте (myForm) и назначить ошибку в BindingResult с помощью rejectValue. Затем вы можете проверить ошибку по шаблону:

public String myPage(..., BindingResult result) {
    result.reject("errorCode1", "Global Error Happened");
    result.rejectValue("newField", "Error 2 happened");
    return "my-view"
}

<form th:object="${myForm}" method="post">
    <p th:if="${#fields.hasGlobalErrors()}" th:errors="*{global}"></p>
    <p th:if="${#fields.hasErrors('newField')}" th:errors="*{newField}"></p>
</form>

Надеюсь, это поможет!

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