Thymeleaf非常重视“自然模板”,这意味着所有模板都已经是有效的XHTML文件。我一直认为这是向前迈出的一大步,我可以在我的模板中生成片段,例如在JSP中我写了
<tagfile:layout title="MyPageTitle">
<jsp:body>
Main content goes here
</jsp:body>
</tagfile:layout>
我的“布局”-Tagfile包含所有标题标签(标题,样式表链接......),菜单和justs在正确的位置插入标题文本和正文。在设计我的html fragement时,我不需要了解样式表菜单等。
这与Thymeleaf的想法相反,Thymeleaf鼓励我创建完整的html页面(包括示例菜单和所有标题)。虽然Thymeleaf的手册继续强调这是多么伟大,但它从不涉及代码重复问题:
我误解了那里的东西吗?或者这确实是一种权衡吗?如何最大限度地减少代码重复的影响?
答案 0 :(得分:7)
自然模板只是Thymeleaf的一个选项。你可以在这里阅读http://www.thymeleaf.org/layouts.html,有许多选项,包括你喜欢的层次布局方法(我建议你看一下布局方言)。
然而,自然的模板的首选和最解释布局选项,因为Thymeleaf是从底层以为最多的允许您的做静态的原型(与大多数其他模板引擎)。但它并没有强迫你。
那么..如何在现实世界中应用自然模板以避免代码重复成为问题?这取决于场景,但我们看到重复的一种模式是人们创建完整的文档,自然模板3-4或甚至十几个应用程序的模板,只有那些更有可能参与设计过程的模板 - 与设计人员,客户......交换,而不是在应用程序模板的其余部分中应用页眉和页脚重复,使其创建和维护更加简单。
通过这种方式,您可以充分利用这两个方面:在程序员,设计师和客户之间交换完全可显示页面的方法,以获得真正相关的页面;以及减少重复的代码量。
更重要的是,得益于像百里香库(以上链接的文章中引用),你甚至可以避免代码重复彻底,让您的片段通过JavaScript动态插入时,您可以直接在浏览器中打开模板而不运行的应用程序。
希望这有帮助。
免责声明,根据StackOverflow规则:我是百里香的作者。