Thymeleaf3 (一)Thymeleaf简介

1 Thymeleaf简介

Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚⾄纯⽂本。Thymeleaf旨在提供⼀个优雅的、⾼度可维护的创建模板的⽅式。 为了实现这⼀⽬标,Thymeleaf建⽴在⾃然模板的概念上,将其逻辑注⼊到模板⽂件中,不会影响模板设计原型。 这改善了设计的沟通,弥合了设计和开发团队之间的差距。 Thymeleaf从设计之初就遵循Web标准——特别是HTML5标准 ,如果需要,Thymeleaf允许您创建完全符合HTML5验证标准的模板。

1.1 Thymeleaf是什么

1.2 Thymeleaf能处理哪些模版 开箱即⽤,Thymeleaf可让处理六种类型的模板,每种类型的模板称为模板模式:

  • HTML
  • XML
  • TEXT
  • JAVASCRIPT
  • CSS
  • RAW

这六种模版模式包含两种标记模板模式(HTML和XML),三种⽂本模板模式(TEXT,JAVASCRIPT和CSS)和⼀个⽆操作模板模式(RAW)。HTML模板模式将允许任何类型的HTML输⼊,包括HTML5,HTML 4和XHTML。Thymeleaf在html5⾮验证模式和验证模式下都能正确执⾏,并且在输出结果中最⼤程度的遵循模板代码/结构。 XML模板模式将允许XML输⼊。在这种情况下,代码预期形式良好 - 没有未关闭的标签,没有引⽤属性等,如果出现⾮法XML输⼊,解析器将抛出 异常。请注意,Thymeleaf不会执⾏XML验证(针对DTD或XML架构)。TEXT模板模式将允许对⾮标记特性的模板使⽤特殊语法。例如:⽂本电⼦邮件或模板⽂档。请注意,HTML或XML模板也可以作为TEXT处理,在这种情况下,它们将不会被解析为标记,并且每个标签如:DOCTYPE,注释等都将被视为纯⽂本。JAVASCRIPT模板模式将允许在Thymeleaf应⽤程序中处理JavaScript⽂件。这意味着可以在JavaScript⽂件中像与HTML⽂件中⼀样的⽅式使⽤模型数据,但可以使⽤特定于JavaScript的集成,例如专⻔的转义或⾃然脚本。 JAVASCRIPT模板模式被认为是⽂本模式,因此使⽤与TEXT模板模式相同的特殊语法。

1.2 Thymeleaf 能处理哪些模版

CSS模板模式将允许处理涉及Thymeleaf应⽤程序的CSS⽂件。与JAVASCRIPT模式类似,CSS模板模式也是⽂本模式,并使⽤TEXT模板模式下的特殊处理语法。RAW模板模式根本不会处理模板。它⽤于将未经修改的资源(⽂件,URL响应等)插⼊正在处理的模板中。例如,HTML格式的外部不受控制的资源可以包含在应⽤程序模板中,安全地知道这些资源可能包含的任何Thymeleaf代码将不会被执⾏。

1.3 Thymeleaf标准⽅⾔

Thymeleaf是⼀个扩展性很强的模板引擎(实际上它可以称为模板引擎框架),Thyme Leaf允许您⾃定义模板,并且很好的处理该模版的细节。 将⼀些逻辑应⽤于标记组件(标签,某些⽂本,注释或只有占位符)的⼀个对象被称为处理器,通常这些处理器的集合以及⼀些额外的组件就组成了Thymeleaf⽅⾔。 开箱即⽤,Thymeleaf的核⼼库提供了⼀种称为标准⽅⾔的⽅⾔,这对⼤多数⽤户来说应该是⾜够的。

请注意,⽅⾔实际上可能不包含处理器,并且完全由其他类型的组件构成,但处理器绝对是最常⻅的⽤例。

本教程涵盖Thyme Leaf的标准⽅⾔。 您将在后⾯章节中的每个属性和语法功能都由Thyme Leaf标准⽅⾔定义,即使没有明确提及。

当然,如果⽤户希望在使⽤标准⽅⾔库的⾼级功能的同时还想定义⾃⼰的处理逻辑,您也可以创建⾃⼰的⽅⾔(甚⾄扩展标准的⽅⾔)。您 也可 以将Thymeleaf配置为⼀次使⽤⼏种⽅⾔。

官⽅的thymeleaf-spring3和thymeleaf-spring4的整合包⾥都定义了⼀种称为“spring标准⽅⾔”的⽅⾔,该⽅⾔与“Thyme Leaf标准⽅⾔”⼤致相同,但是对于Spring框架中的某些功能(例如,通过使⽤SpringEL表达式代替OGNL表达式)做了⼀些简单的调整。 所以如果你是⼀个Spring MVC⽤户,使⽤ThymeLeaf并不会浪费你的时间,因为你在这⾥学到的所有东⻄都将可应⽤到你的Spring应⽤程序中。

ThymeLeaf标准⽅⾔中的⼤多数处理器都是是属性处理器。 这样,即使在模版未被处理之前,浏览器也可以正确地显示HTML模板⽂件,因为浏览器将简单地忽略其不识别的属性。 例如,像下⾯这段JSP模版的代码⽚段就不能在模版被解析之前通过浏览器直接显示了:

<form:inputText name="userName" value="${user.name}" />

然⽽Thymeleaf标准⽅⾔将允许我们实现与上述代码相同的功能:

<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

浏览器不仅可以正确显示这些信息,⽽且还可以(可选地)在浏览器中静态打开时显示⼀个默认的值(可选地),(在本列中为“JamesCarrot”), 在模板处理期间由$ {user.name}的值代替value的真实值。这有助于您的设计师和开发⼈员处理相同的模板⽂件,并减少将静态原型转换为⼯作模板⽂件所需的⼯作量。 具备这种能⼒的模版我们称为⾃然模板。

转载于:https://my.oschina.net/u/4006362/blog/2254433

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
## springboot整合thymeleaf ### 1. 导入起步依赖 ```xml org.springframework.boot spring-boot-starter-thymeleaf ``` ### 2. 更改引入版本 ```xml 3.0.2.RELEASE 2.1.1 ``` > 1. springboot自带的thymeleaf依赖为2.1.3版本,使用thymeleaf-layout-dialect版本为2以下版本。 > 2. 使用3或3以上的thymeleaf时,需要thymeleaf-layout-dialect的版本为2或以上。 > 3. 锁定thymeleaf版本时不能使用thymeleaf.version标签,会和springboot内部的依赖标签冲突。应当使用springboot-thymeleaf.version标签来锁定版本。 ### 3. 配置文件配置 ```properties spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.check-template-location=true spring.thymeleaf.suffix=.html spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.content-type=text/html spring.thymeleaf.mode=HTML spring.thymeleaf.cache=false ``` > spring.thymeleaf.cache为缓存,需要热部署时,需要设置为false ## 语法 ### 1. 替换标签体内容 ```html 显示欢迎 显示欢迎 ``` ### 2. 替换属性 ```html 显示欢迎 ``` ### 3. 在表达式中访问属性域 ```html 访问属性域 访问请求域 方式一 访问请求域 方式二 访问Session域 访Session域 方式一 访问Application域 方式一 ``` ### 4. 解析url地址 ```html 解析URL地址,获取ContextPath的值 @{}是把ContextPath的值附加到指定的地址前 @{}是把ContextPath的值附加到指定的地址前 ``` ### 5. 直接执行表达式 ```html 直接执行表达式 无转义效果 : [[${attrRequestScope}]] 有转义效果 : [(${attrRequestScope})] ``` ### 6. 分支与迭代 #### 1. if 判断 ```html if判断字符串是否为空 <p th

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值