Использование переменной в th: replace не отображает шаблон - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь использовать атрибут модели из контроллера Spring MVC в разделе th: replace. В этом примере переменная страницы представляет собой строку defult :: default, но в верхней части указывается следующая ошибкаTemplateInputException: Error resolving template [default :: default], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "index" - line 53, col 14)

<div th:replace="${page}" th:assert="${!#strings.isEmpty(page)}"></div>

<div th:replace="default :: default"></div>

нижний работает нормально.

Я пробовал несколько разных процессоров, в том числе th: replace = "@ {{page} (page = $ {page})}" и что не попробовать несколькими разными способами, но, похоже, ничто не позволяет этогодолжно быть разрешено из переменной и, как и преобразователь, обрабатывает тег по-разному.

Вот код контроллера.

    fun blog(model: Model): String {
        model["page"] = "default :: default"
        return "index"
    }

Я ожидаю, что оба атрибута th: reaplce будут действовать одинаково.

1 Ответ

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

это простая вещь. просто нужно __ для правильного рендеринга, просто нужно RTFM.

<div th:include="__${page}__" th:if="${!#strings.isEmpty(page)}"></div>

Мне нравится это лучше, чем макеты по нескольким причинам.

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