使用th是否正确:replace / th:不使用片段插入?

时间:2017-08-04 09:28:41

标签: spring-mvc thymeleaf

我是Thymeleaf的新手,我想知道标签 th:insert th:replace 是否绝对需要引用片段。

以下是一个示例,我想在父模板中包含整个页面menu.html

<!DOCTYPE html>
<html>
   <body>
      <th:block th:replace="child/menu"></th:block>
   </body>
</html>

以下是子菜单模板menu.html

 <ul>
    <li>Menu 1</li>
    <li>Menu 2</li>
 </ul>

它工作正常,但我在文档中找不到这样的例子,每个对 th:replace 的引用都是使用像th:replace="child/menu :: menu"这样的片段调用的,所以我是想知道我的代码是否正确

2 个答案:

答案 0 :(得分:1)

你的代码很好。简单的证明就是尝试在可嵌入页面中使用Thymeleaf表达式:

<ul>
    <li th:text="${attrValue}"></li>
</ul>

如果您在初始模板中传递attrValue模型属性,则无问题。您甚至不必在menu.html页面中指定Thymeleaf架构URL。

答案 1 :(得分:0)

这是一个可以理解的例子 假设这是片段

我们在这些div中使用了

所以最终输出:

 <div id="tagWithFragmentAttribute">
     <div id="contentGoesHere"></div>
    </div>

    <div id="tagWithInsertAttribute">
     <div id="tagWithFragmentAttribute">
      <div id="contentGoesHere"></div>
     </div>
    </div>

    <div id="tagWithIncludeAttribute">
     <div id="contentGoesHere"></div>
    </div>