当前位置: 首页 > 知识库问答 >
问题:

为什么th:include自Thymeleaf 3.0以来不再被推荐?

浦毅
2023-03-14

http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#template-layout医生说:

上面的代码定义了一个名为copy的片段,我们可以使用th:insert或th:replace属性(以及th:include,尽管自Thymeleaf 3.0以来不再推荐使用它)轻松地将其包含在主页中。

我个人发现th:插入是实现模板的唯一可能方法。

那是什么意思?th:插入不建议使用或将在未来版本中删除?或者这是不好的做法?

是什么导致th:insert名声不好?

共有2个答案

程仲卿
2023-03-14

在里面https://github.com/thymeleaf/thymeleaf/issues/625我得到的回应是从2开始的。0.3和相应的Thymeleaf v3。0.4可以使用content()选择器,它与th:replace一起使th:include冗余:

<div th:replace="thymeleaf/layout :: tmpl(~{::body/content()})">
    XXX
</div>
孙志
2023-03-14

我认为这是一个推广先前由th:include提供的内容的案例。。。

Thymeleaf 3.0引入了一种新的表达类型,作为通用Thymeleaf标准表达系统的一部分:片段表达。

它们看起来是这样的:~{commons::footer}是的,它们非常类似于很久以前在th:replace和th:include(现在是th:insert)中使用的语法……因为它们使用的正是这种语法,但经过了推广,现在可以在其他范围中使用。

参见片段表达式

Thymeleaf文档中没有任何内容建议不应使用th:include,也没有任何内容建议在未来版本中删除th:include

 类似资料:
  • 为什么在JUnit5中不再推荐assertEquals(double,double)?

  • 问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法

  • 问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring

  • 问题内容: 我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。 我向ehcache添加了一个依赖项: 我认为我要使用的提供程序类是: 在eclipse中查看引用的库时,我在和上都看到了注释。是什么赋予了?我可以使用最新的替代供应商吗? 我正在使用hibernate版本3.4.0.GA,以防万一。 问题答案: 是什么赋予了?我可以使用最新的替代供应商吗? 不推荐使用它

  • 问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 有人可以解释我为什么吗?在hibernate4中,我现在需要执行所有任务,例如提交,关闭,刷新由getHibernateTemplate()方法自动管理的事务? 问题答案: 因为它的主要目的是使Hibernate会话绑定到当前的Spring事务(

  • (6):注意:任何构造函数都不能接受源类型,或者构造函数重载解析不明确 该项目使用标志编译。我在Godbolt上复制了。如果我将它切换到,它的编译效果和以前一样好。 我试图用clang用编译相同的代码,结果出现了类似的错误。此外,默认或删除其他构造函数也会生成此错误。 null 但是,我在所有的项目中都显式地默认和删除了很多构造函数,因为我发现用这种方式使代码更有表现力是一个好习惯,因为与隐式默认