Thymeleaf非常强调“自然模板”,这意味着所有模板都已经是有效的XHTML文件。我一直认为这是向前迈出的一大步,我可以在模板中生成片段,例如在JSP中我会编写
<tagfile:layout title="MyPageTitle">
<jsp:body>
Main content goes here
</jsp:body>
</tagfile:layout>我的“布局”-Tagfile包含所有的标题标签(标题,链接到样式表,.),菜单和只是插入标题文本和正文在正确的点。在设计我的html片段时,我不需要了解任何关于样式表、菜单等的知识。
这与Thymeleaf的想法形成了鲜明的对比,Thymeleaf鼓励我创建完整的html页面(包括示例菜单和所有标题)。尽管Thymeleaf手册继续强调这是多么伟大,但它从不处理代码复制问题:
我是不是误解了什么?或者这真的是一种交换?如何将代码重复的影响降到最低?
发布于 2014-03-02 13:31:47
自然模板只是Thymeleaf中的一个选项。正如您在这里所读到的,http://www.thymeleaf.org/layouts.html有许多选项,包括您喜欢的分层布局方法(我建议您看看布局方言)。
然而,自然模板是首选和解释最多的布局选项,因为Thymeleaf是从底层开始考虑的,允许您进行静态原型开发(与大多数其他模板引擎不同)。但它并没有强迫你。
所以..。如何在现实世界中应用自然模板以避免代码重复成为一个问题?这取决于场景,但我们经常看到的一种模式是,人们创建完整的文档,为3-4甚至十几个应用程序模板创建自然模板,只有那些更有可能参与设计过程的模板--与设计师、客户交换--而且根本不将页眉和页脚复制应用于应用程序的其余模板中,从而使它们的创建和维护变得更加简单。
这样,您就可以拥有这两个世界中的最佳状态:一种在程序员、设计人员和客户之间交换完全可显示的页面的方法,以获得真正相关的页面;还可以减少重复代码的数量。
更重要的是,多亏了像Thymol这样的库(在上面链接的文章中引用),您甚至可以完全避免代码重复,在不运行应用程序的情况下,直接在浏览器中打开模板时,可以通过JavaScript动态插入片段。
希望这能有所帮助。
免责声明,根据StackOverflow规则:我是thymeleaf的作者。
https://stackoverflow.com/questions/22114657
复制相似问题