Thymeleaf是现代化服务器端的Java模板引擎,不同与JSP和FreeMarker,Thymeleaf的语法更加接近HTML,并且也有不错的扩展性。详细资料可以浏览官网。本文主要介绍Thymeleaf模板的使用说明。

模板(template fragments)###

定义和引用模板

日常开发中,我们经常会将导航栏,页尾,菜单等部分提取成模板供其它页面使用。

在Thymeleaf 中,我们可以使用th:fragment属性来定义一个模板。

我们可以新建一个简单的页尾模板,如:/WEB-INF/templates/footer.html,内容如下:

xmlns:th="http://www.thymeleaf.org">

© 2016 xxx

上面定义了一个叫做copyright的片段,接着我们可以使用th:include或者th:replace属性来使用它:

...

其中th:include中的参数格式为templatename::[domselector],

其中templatename是模板名(如footer),domselector是可选的dom选择器。如果只写templatename,不写domselector,则会加载整个模板。

当然,这里我们也可以写表达式:

模板片段可以被包含在任意th:*属性中,并且可以使用目标页面中的上下文变量。

不通过th:fragment引用模板

通过强大的dom选择器,我们可以在不添加任何Thymeleaf属性的情况下定义模板:

...

© xxxxxx

...

通过dom选择器来加载模板,如id为copy-section

...

th:include 和 th:replace区别

th:include 是加载模板的内容,而th:replace则会替换当前标签为模板中的标签

例如如下模板:

© 2016

我们通过th:include 和 th:replace来加载模板

返回的HTML如下:

© 2016

© 2016

模板参数配置###

th:fragment定义模板的时候可以定义参数:

...

在 th:include 和 th:replace中我们可以这样传参:

...
...

此外,定义模板的时候签名也可以不包括参数:

,我们任然可以通过

...

这种方式调用模板。这其实和

起到一样的效果

th:assert 断言

我们可以通过th:assert来方便的验证模板参数...

th:remove 删除代码###

假设我们有一个产品列表模板:

NAME PRICE IN STOCK COMMENTS
Onions 2.41 yes

2 comment/s

th:href="@{/product/comments(prodId=${prod.id})}"

th:unless="${#lists.isEmpty(prod.comments)}">view

这时一个很常规的模板,但是,当我们直接在浏览器里面打开它(不(不使用Thymeleaf ),它实在不是一个很好的原型。因为它的表格中只有一行,而我们的原型需要更饱满的表格。

如果我们直接添加了多行,原型是没有问题了,但通过Thymeleaf输出的HTML又包含了这些事例行。

这时通过th:remove属性,可以帮我们解决这个两难的处境,

NAME PRICE IN STOCK COMMENTS
Onions 2.41 yes

2 comment/s

th:href="@{/product/comments(prodId=${prod.id})}"

th:unless="${#lists.isEmpty(prod.comments)}">view

Blue Lettuce 9.55 no

0 comment/s

Mild Cinnamon 1.99 yes

3 comment/s

view

其中th:remove的参数有如下几种:

all 删除当前标签和其内容和子标签

body 不删除当前标签,但是删除其内容和子标签

tag 删除当前标签,但不删除子标签

all-but-first 删除除第一个子标签外的其他子标签

none 啥也不干

当然,我们也可以通过表达式来传参,

Link text not to be removed

以上为Thymeleaf中模板的一些用法,各位看官请点赞。

themleft模板库_Thymeleaf 模板的使用相关推荐

  1. themleft模板库_Thymeleaf模板引擎常用总结

    一:语法简单总结 Thymeleaf是一个Java类库,是xml/html/html5的模板引擎,SpringBoot框架推荐在MVC的Web应用做做View层使用. SpringBoot中整合Thy ...

  2. C++ Primer plus学习笔记-第十六章:string类和标准模板库

    第十六章:string类和标准模板库 前言:这一章已经相当靠近全书的后面部分了:这一章我们会深入探讨一些技术上的细节,比如string的具体构造函数,比如适用于string类的几个函数,比如我们还会介 ...

  3. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  4. 提高C++性能的编程技术笔记:标准模板库+测试代码

    标准模板库(Standard Template Library, STL)是容器和通用算法的强效组合. 渐近复杂度:算法的渐近复杂度是对算法性能的近似估计.它是算法集到特定性能标准集的映射.如果需要对 ...

  5. C++中标准模板库std::vector的实现

    以下实现了C++标准模板库std::vector的部分实现,参考了 cplusplus. 关于C++中标准模板库std::vector的介绍和用法可以参考 https://blog.csdn.net/ ...

  6. C++中标准模板库std::pair的实现

    以下用C++实现了标准模板库中的std::pair实现,参考了 cplusplus 和 vs2013中的utility文件. 关于std::pair的介绍和用法可以参考: https://blog.c ...

  7. STL 简介,标准模板库

    作者:Scott Field 这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.     当我第一次打算写一篇关于STL的文章的 ...

  8. Part10 泛型程序设计与C++标准模板库 10.1泛型程序设计及STL的结构

    1泛型程序设计的基本概念 泛型程序设计: 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 术语:概念 用来界定具备一定功能的数 ...

  9. ECShop 模板库项目功能详解

    2019独角兽企业重金招聘Python工程师标准>>> 本文希望能给想了解ECShop库项目功能的人提供一些帮助.ec的高手就可以忽略了,有不同意见的朋友欢迎提意见. 许多刚接触 E ...

最新文章

  1. zabbix 3.2安装部署(一)
  2. NOIP信息奥赛--1995“同创杯”初中复赛题题解(四)
  3. python获取当前文件路径
  4. html表单php连接mysql数据库_使用HTML表单和PHP更新MySQL
  5. [Linux命令]dd
  6. nosql数据库基础
  7. 【R爬虫-1】BBC Learning English
  8. Redis源代码分析(三十)--- pubsub公布订阅模式
  9. 射频IC理论知识/参考书
  10. python语言培训是密封式的吗
  11. 有多少程序员干到35岁,那么其他人去干什么了?
  12. Arduino和LabVIEW射频校园火警系统
  13. 三大流量站点你适合做哪个?
  14. 用哪些特殊的字符方便作为分隔符
  15. CentOS上的硬盘分区
  16. 不懂分布式,枉称大数据
  17. 计算机图形学Bezier曲线试题,《计算机图形学》试题-C卷及参考答案
  18. 那些好用的无版权免费图片网站
  19. 程序设计我爱你_如何用爱设计
  20. 人工智能-阿尔法狗背后的简单原理:贝叶斯公式

热门文章

  1. linux服务器运行matlab文件报错
  2. linux用unzip解压.zip文件失败解决方案
  3. [云炬创业基础笔记]创业计划书常见问题
  4. 科大星云诗社动态20201203
  5. Chrome扩展程序——TabCopy:一键复制网页标题和网址
  6. 重磅 | 19 页花书精髓笔记!你可能正需要这份知识清单
  7. 编写代码的若干个基本规则(以Java为例)
  8. 怎样在C++Builder中创建使用DLL
  9. Delphi 中自定义异常及异常处理的一般方法
  10. 分享一个有趣的学习方法,欢迎一起探讨如何提高学习兴趣作者:1-2-3 来源:博客园 发布时间:2009-03-09 16:20 阅读:2820 次 原文链接 [收藏]