发布于2021-06-08 10:05 阅读(620) 评论(0) 点赞(23) 收藏(0)
例如在类路径下的templates目录下的dashboard.html页面中, 定义一个公共片段
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">
这是公共片段的内容
</nav>
例如在类路径下的templates目录下的list.html页面中, 引用一个公共片段
引用方式:
~{templateName::fragmentName} 模板名::片段名
~{templateName::selector} 模板名::选择器
模板名其实就是thymeleaf模板引擎渲染的页面, 片段名就是th:fragment
标签的属性值, 选择器就是前端中的各种选择器(id, class…)
<div th:replace="~{dashboard::topbar}"></div>
上述代码等效于
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">
这是公共片段的内容
</nav>
引用片段的方法有三种
th:insert
是最简单的:它会简单地插入指定的片段作为其宿主标签的主体。th:replace
实际上用指定的片段替换其主机标记。th:include
与 类似th:insert
,但它不插入片段,而是仅插入此片段的内容。例如在类路径下的templates目录下的footer页面中有如下片段
<footer th:fragment="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>
© 2011 The Good Thymes Virtual Grocery
</footer>
</div>
<footer>
© 2011 The Good Thymes Virtual Grocery
</footer>
<div>
© 2011 The Good Thymes Virtual Grocery
</div>
在引用公共片段时我们可以在片段名的后面追加参数(写在小括号中, 若有多个参数, 用逗号隔开), 这样在片段中我们就可以使用这些参数, 例如如下
<div th:replace="comm/bar::sidebar(activeUri='main.html')"></div>
<div th:replace="comm/bar::sidebar(activeUri='list')"></div>
如下被引用的片段将根据参数来调整哪个标签将被激活, 处于活动状态
<nav class="col-md-2 d-none d-md-block bg-light sidebar" th:fragment="sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link" th:class="${activeUri=='main.html'?'nav-link active':'nav-link'}" href="#" th:href="@{/main.html}" >
</a>
</li>
<li class="nav-item">
<a class="nav-link" th:class="${activeUri=='list'?'nav-link active':'nav-link'}" href="#" th:href="@{/list}" >
</a>
</li>
</nav>
作者:想要飞翔的天使
链接:http://www.javaheidong.com/blog/article/219330/1fa065da02f6dcb38c75/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!