Thymeleaf非常强调“自然模板”,这意味着所有模板都已经是有效的XHTML文件。我一直认为这是向前迈出的一大步,我可以在我的模板中生成片段,例如在我编写的JSP中
<tagfile:layout title="MyPageTitle">
<jsp:body>
Main content goes here
</jsp:body>
</tagfile:layout>
我的“布局”-标记文件包含所有标题标记(标题、样式表链接等),菜单和justs在右点插入标题文本和正文。在设计html框架时,我不需要知道任何关于样式表菜单之类的东西。
这与Thymeleaf的想法相反,它鼓励我创建完整的html页面(包括示例菜单和所有标题)。虽然Thymeleaf的手册继续强调这是多么伟大,但它从未涉及代码重复的问题:
我是不是误解了什么?或者这确实是一种权衡?如何将代码重复的影响降至最低?
自然模板只是Thymeleaf中的一个选项。正如你在这里看到的http://www.thymeleaf.org/layouts.html有很多选择,包括分层布局方法,就像您喜欢的那样(我建议您看看布局方言)。
然而,自然模板是首选的,也是解释最多的布局选项,因为Thymeleaf从一开始就被认为允许您进行静态原型设计(与大多数其他模板引擎相比)。但这并不强迫你这么做。
所以如何在现实世界中应用自然模板以避免代码重复成为一个问题?这取决于场景,但我们经常看到的一种模式是,人们为3-4甚至十几个应用程序模板创建完整的文档、自然模板,只有那些更可能参与设计过程的模板——与设计师、客户交换,并且不在应用程序的其余模板中应用重复的页眉和页脚,从而使它们的创建和维护更加简单。
这样你就可以两全其美:在程序员、设计师和客户之间交换完全可显示的页面,以换取真正相关的页面;以及减少重复代码的数量。
更重要的是,多亏了像Thymol这样的库(在上面链接的文章中引用),您甚至可以完全避免代码重复,当您直接在浏览器中打开模板而不运行应用程序时,允许通过JavaScript动态插入片段。
希望这有帮助。
根据StackOverflow规则,免责声明:我是thymeleaf的作者。
如何在使用Tiles2作为模板引擎的同时有效地使用ThymeLeaf自然模板。我有一个简单的定义: 还有我的布局 和一个简单的内容。HTML模板 我的问题是:如果我试图在本地检查content.html,那么它看起来不应该,因为我没有定义
我在看一本书《Spring在行动》第5版,但我认为这是一个错误。 这是这本书的GitHub。我已经到了第3章tacos-jdbc代码源码 submit my order时突然出现错误: OrderController: 和OrderForm:
我有一个应用程序,这是Spring书签教程的简化版本。在其中,控制器被注释为,并且应用程序只返回JSON。 我增加了通过Thymeleaf模板返回HTML的功能。我的模板正在返回,但它们似乎没有被Thymeleaf处理。我使用的是spring boot,我的文件,但这似乎还不够。 例如,下面是根目录的一个简单控制器: 和: 结果呈现以下页面: 我发现的例子表明,这是我需要做的全部,但它不起作用。我
冲突合并一般是因为自己的本地做的提交和服务器上的提交有差异,并且这些差异中的文件改动,Git不能自动合并,那么就需要用户手动进行合并 如我这边执行git pull origin master 如果Git能够自动合并,那么过程看起来是这样的 拉取的时候,Git自动合并,并产生了一次提交。 如果Git不能够自动合并,那么会提示 这个时候我们就可以知道README.MD有冲突,需要我们手动解决,修改RE
请注意 这个重试功能在Spring Batch 2.2.0里面退出,现在它是Spring Retry的一部分. 为了让这个进程更稳定,更小的失败性。有时它帮助自动重试一个失败的操作以防止它可能在后续的尝试成功。本质上,这种处理会导致误差。例如,远程调用网络服务或RMI服务失败是由于在短暂的数据更新后,网络故障或冻结异常aDeadLockLoserException.例如重试这种自动化操作,Spri
我正在使用SpringBoot1.4开发一些Spring应用程序。1和spring boot starter与ELEAF的依赖关系。我希望在我的Web服务器上共享我的ThymileAF模板(例如页眉和页脚),以便能够将它们包含在我的应用程序中。实现这一点的最简单方法是在我的每个应用程序中包含指向我的模板的服务器根相对链接。这样,我的应用程序将是可移植的,我可以让它在我的所有环境(开发、测试、产品)