thymeleaf公共页面元素抽取

1、抽取公共片段

  使用thymeleaf的 th:fragment 为样抽取的公共片段命名,

  如下把div标签命名为 copy,就可以获取到div整个里的内容

  <div th:fragment="copy">
    &copy; 2011 The Good Thymes Virtual Grocery
  </div>

2、引入公共片段

  <div th:insert="~{footer :: copy}"></div>
  ~{templatename::selector}:模板名::选择器
  ~{templatename::fragmentname}:模板名::片段名

3、默认效果:

  insert的公共片段在div标签中

  如果使用th:insert等属性进行引入,可以不用写~{}:
  行内写法可以加上:[[~{}]];[(~{})];

  三种引入公共片段的th属性:

    th:insert:将公共片段整个插入到声明引入的元素中

    th:replace:将声明引入的元素替换为公共片段

    th:include:将被引入的片段的内容包含进这个标签中

  <footer th:fragment="copy">
    &copy; 2011 The Good Thymes Virtual Grocery
  </footer>

  引入方式
  <div th:insert="footer :: copy"></div>
  <div th:replace="footer :: copy"></div>
  <div th:include="footer :: copy"></div>

  效果
  <div>
    <footer>
      &copy; 2011 The Good Thymes Virtual Grocery
    </footer>
  </div>

  <footer>
    &copy; 2011 The Good Thymes Virtual Grocery
  </footer>

  <div>
    &copy; 2011 The Good Thymes Virtual Grocery
  </div>

引入片段的时候传入参数:

  <nav class="col-md-2 d-none d-md-block bg-light sidebar" id="sidebar">
    <a class="nav-link active" th:class="${activeUri=='main.html'?'nav-link active':'nav-link'}" href="#" th:href="@{/main.html}"></a>

  </nav>

  <!--引入侧边栏;传入参数-->
  <div th:replace="commons/bar::#sidebar(activeUri='emps')"></div>

然后可以通过

  <a class="nav-link active" th:class="${activeUri=='main.html'?'nav-link active':'nav-link'}" href="#" th:href="@{/main.html}"> </a>

像上面的<a>做一些自定义操作

posted @ 2019-05-30 15:15  NOT_COPY  阅读(2321)  评论(1编辑  收藏  举报