为什么:自Thymeleaf 3.0以来不再推荐使用include?

时间:2017-07-19 10:58:23

标签: thymeleaf

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

  

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

我个人发现th:insert是实现模板的唯一可能方式。

那是什么意思? {@ 1}}已弃用或将在以后的版本中删除?或者这是不好的做法?

是什么让th:insert名声不好?

2 个答案:

答案 0 :(得分:1)

我认为这是一个概括th:include ...

之前提供的内容的案例
  

Thymeleaf 3.0引入了一种新型表达式作为其中的一部分   一般的Thymeleaf标准表达系统:片段表达。

     

他们看起来像这样:〜{commons :: footer},是的,他们非常   类似于可以在内部使用的语法:replace和   th:很久以前包括(现在th:插入)...因为他们使用的确切   该语法,但一般化,以便它现在可以在其他语言中使用   作用域。

请参阅Fragment Expressions

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

答案 1 :(得分:0)

https://github.com/thymeleaf/thymeleaf/issues/625中,我得到了响应,从AttoParser v2.0.3开始,可以使用相应的Thymeleaf v3.0.4 content()选择器,th:replace使th:include变为冗余:

<div th:replace="thymeleaf/layout :: tmpl(~{::body/content()})">
    XXX
</div>