Возможно ли создать динамическую замену в Thymeleaf?Thymeleaf + пружинная динамическая замена
У меня есть следующий контроллер:
@Controller
public class LoginController {
@RequestMapping("/login")
public String getLogin(Model model){
model.addAttribute("template","login");
return "index";
}
}
И следующий вид:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" >
<head></head>
<body>
<div th:replace="fragments/${template} :: ${template}"></div>
</body>
</html>
, и я получаю следующее сообщение об ошибке:
Error resolving template "fragments/${template}", template might not exist or might not be accessible by any of the configured Template Resolvers
UPDATE
Я пытался предобработки мои переменные, как это:
<div th:replace="fragments/${__#{${template}}__} :: ${__#{${template}}__}"></div>
Как когда-либо в настоящее время ${template}
становится заменен login
я следующую ошибку сейчас:
Exception evaluating SpringEL expression: "??login_en_US??"
Я не знаю, если это возможно, но я хотел бы попробовать поместить текст в одинарные кавычки, как так: 'е: заменить =" „фрагменты /“ + $ { template} + '::' + $ {template} "' –
@JoeEssey благодарит за ваш комментарий. Можно выполнить конкатенацию строк, как бы без предварительной обработки это не было: fragments/$ {template} ... – Wermerb
Я думаю, что вы ищете иерархический подход к размещению, такой как Tiles или SiteMesh. Thymeleaf предлагает эту функциональность. Это описано в этой статье: http://www.thymeleaf.org/doc/articles/layouts.html. См. Раздел «Диалог макета тимелеафа». – broadbear