使用 thymeleaf 用父布局包装模板

Posted

技术标签:

【中文标题】使用 thymeleaf 用父布局包装模板【英文标题】:wrap template with a parent layout using thymeleaf 【发布时间】:2013-11-21 09:20:02 【问题描述】:

我刚决定用 spring-boot 和 thymeleaf 开始一个小项目。

到目前为止,百里香叶本身看起来很棒,但我的问题是最好的方法是什么? layout.html 带来页面的基本布局

喜欢 - 常见的 CSS 包含 - 常见的 js 内含物 - 基本结构(例如 2/3 列布局)

围绕着单个页面的内容(查看博客文章、查看 cmets、查看图库中的图像等),我不需要将通用内容携带到所有模板中。

到目前为止,我发现的唯一方法是使用片段包含,但我不确定这是否是在我要为当前请求呈现的模板周围获得完整结构的正确方法

我如何在我的模板周围获得<div class="content"></div>

希望有人能帮忙。

提前致谢

【问题讨论】:

【参考方案1】:

您有两个选择:Tiles Extension、Layout Dialect - 您可以在此处的生态系统页面中找到两者:http://www.thymeleaf.org/ecosystem.html

本评论中描述的原生方法(没有任何扩展):

http://blog.codeleak.pl/2013/11/is-it-worth-upgrading-to-thymeleaf-21.html?showComment=1383817035384#c5722173744814267184

希望对你有帮助。

【讨论】:

哈哈,在搜索解决方案时,我在我的谷歌搜索结果中看到了该博客文章...但是当我开始使用 2.1 时,我没有打开那个...然后我不确定如果我会阅读 cmets。我会尝试原生方法,只需要弄清楚如何做评论中提到的拦截器:D 谢谢! :) 如果你有兴趣,写了一篇文章,我介绍了如何做到这一点:blog.codeleak.pl/2013/11/…【参考方案2】:

最新版本的 Spring Boot 包括 Thymeleaf,对 Fragment 提供原生支持。现在是最好的选择。示例here。

旧答案:Spring Boot 对LayoutDialect 提供了开箱即用的支持(我们认为这是最佳选择)。您只需将所有内容的正确版本添加到您的类路径中。有一个sample that uses this approach。

【讨论】:

链接已损坏。

以上是关于使用 thymeleaf 用父布局包装模板的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Spring Boot 中找到 Thymeleaf 模板

Thymeleaf模板格式化LocalDatetime时间格式

Thymeleaf(第八章)模板布局

Thymeleaf 无法解析多模块 Spring Boot 项目中的模板

Thymeleaf 模板

springboot-17-springboot的文件上传和下载