проблема в том, что когда я вызываю конечную точку моего контроллера, которая возвращает home.jte, я получаю сообщение об ошибке, что navHandle в моем заголовке не установлен. Я могу решить эту проблему, установив navHandle внутри home.jte, а затем передав его в layout.jte, но тогда мне придется включать его в каждый файл макета, который я создаю.
Есть ли способ установить navHandle в header.jte, не передавая его через home.jte?
Моя файловая структура:
- jte/страницы
layout.jte - header.jte
- footer.jte
- home.jte
Layout.jte содержит (упрощенный) :
@import gg.jte.Content
@param Content mainContent = null
{...}
@template.pages.header(navHandle = navHandle)
@if (mainContent != null)
${mainContent}
@endif
@template.pages.footer()
{...}
Заголовок.jte содержит (упрощенно):
@import {...}.NavigationHandler
@param NavigationHandler navHandle
${navHandle.method()}
< /code>
home.jte содержит (упрощенное): < /p>
@template.pages.layout(
mainContent = @`
Stuff
`
)
< /code>
The Cool.jte содержит (упрощено): < /p>
Placeholder
< /code>
Мой контроллер выглядит следующим образом: < /p>
{...}
private final NavigationHandler navHandle; // gets dependency injected
@GetMapping(value = "/")
public String layoutPage(Model model, HttpServletResponse response) {
model.addAttribute("navHandle", navHandle);
return "pages/home";
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... spring-jte
Мобильная версия