Thymeleaf简要介绍

1 Thymeleaf是什么

Thymeleaf是一种用于Web和独立环境的现代服务器端的Java模板引擎。
Thymeleaf的主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。
Thymeleaf使用Spring框架的模块,与许多常见的工具集成在一起,并且可以插入自己的功能,是现代HTML5 JVM Web开发的理想选择,尽管Thymeleaf还有更多其它的功能。
Thymeleaf建立在自然模板的概念之上,以不影响模板作为设计原型的方式将其逻辑注入到模板文件中。 这改善了设计沟通,弥合了前端设计和开发人员之间的理解偏差。

2 模板模式

开箱即用,Thymeleaf可以处理六种模板,每种模板都称为模板模式:
HTML
XML
TEXT
JAVASCRIPT
CSS
RAW
有两种标记模板模式(HTML和XML),三种文本模板模式(TEXT,JAVASCRIPT和CSS)和一种无操作模板模式(RAW)。
HTML模板模式将允许任何类型的HTML输入,包括HTML5,HTML4和XHTML。 将不会执行验证或格式检查,并且在输出中尽可能地遵守模板代码/结构。
XML模板模式将允许XML输入。 在这种情况下,代码应该是格式良好的 - 没有未封闭的标签,没有未加引号的属性等等,如果发现格式错误,解析器将会抛出异常。 请注意,将不会执行验证(针对DTD或XML模式)。
TEXT模板模式将允许对非标记性质的模板使用特殊语法。 这种模板的例子可能是文本电子邮件或模板文档。 请注意,HTML或XML模板也可以作为TEXT处理,在这种情况下,它们不会被解析为标记,而每个标记,DOCTYPE,注释等都将被视为纯文本。
JAVASCRIPT模板模式将允许处理Thymeleaf应用程序中的JavaScript文件。这意味着能够像在HTML文件中一样使用JavaScript文件中的模型数据,但是使用特定于JavaScript的集成(例如专门转义或自然脚本)。 JAVASCRIPT模板模式被认为是文本模式,因此使用与TEXT模板模式相同的特殊语法。
CSS模板模式将允许处理Thymeleaf应用程序中涉及的CSS文件。类似于JAVASCRIPT模式,CSS模板模式也是文本模式,并使用TEXT模板模式中的特殊处理语法。
RAW模板模式根本不会处理模板。它意味着用于将未触及的资源(文件,URL响应等)插入正在处理的模板中。例如,可以将HTML格式的外部非受控资源包含在应用程序模板中,从而安全地知道这些资源可能包含的任何Thymeleaf代码都不会被执行。

3 方言:标准方言

详情见此

4. URL

详情见此

5.表达式基本对象

基础对象
  #ctx:上下文对象
  #locale:直接访问java.util.Locale与当前请求关联的
  #vars:org.thymeleaf.context.VariablesMap上下文中所有变量的实例(通常包含在#ctx.variables加本地变量中的变量)。
请求/会话属性的Web上下文命名空间等。
  param:用于检索请求参数。 p a r a m . f o o 是 一 个 S t r i n g [ ] 带 有 f o o 请 求 参 数 值 的 , 因 此 {param.foo}是一个String[]带有foo请求参数值的,因此 param.fooString[]foo{param.foo[0]}通常用于获取第一个值。
session:用于检索会话属性。
application:用于检索应用程序/ servlet上下文属性。
Web上下文对象
#httpServletRequest:直接访问javax.servlet.http.HttpServletRequest与当前请求关联的对象
#httpSession:直接访问javax.servlet.http.HttpSession与当前请求关联的对象。
Spring上下文对象
#themes:提供与Spring spring:themeJSP标记相同的功能
表达式实用程序对象
#dates:java.util.Date对象的实用方法
#calendars:类似于#dates,但对于java.util.Calendar对象:
#numbers:数字对象的实用方法:
#strings:String对象的实用方法
#objects:一般对象的实用程序方法
#bools:布尔评估的实用程序方法
#arrays:数组的实用程序方法
#lists:列表的实用程序方法
#sets:集合的实用程序方法
#maps:地图的实用程序方法
#aggregates:用于在数组或集合上创建聚合的实用程序方法
#messages:用于在变量表达式中获取外部化消息的实用程序方法,与使用#{…}语法获取它们的方式相同。
#ids:用于处理id可能重复的属性的实用程序方法(例如,作为迭代的结果)。

https://www.cnblogs.com/feichangnice/p/10168987.html

6. Thymeleaf中的特殊字符转义 (th:utext与th:text)

使用th:text显示纯文本(自动转义),使用th:utext则显示正常效果;

7. Thymeleaf迭代 (th:each)

Red chair ¥350 2018-02-20 ## 8. Thymeleaf if-else (th:if) 1 Red chair ¥350 2018-02-20 特殊提供 ## 9.Spring 表达式语言

算术表达式

Four multiplied by minus six multiplied by minus two module seven:

123

<h2>对象导航</h2>
<p class="label">Description  field of the
    third element of productList bean:</p>
<p class="answer"
    th:text="${productList[2].description}">Product Description</p>

<h2>对象实例化</h2>
<p class="label">Current time milliseconds:</p>
<p class="answer" th:text="${new java.util.Date().getTime()}">22-Jun-2018</p>

<h2>T操作符</h2>
<p class="label">Random number:</p>
<p class="answer" th:text="${T(java.lang.Math).random()}">123456</p>

10. Thymeleaf表单


      <label for="firstName">有效日期:</label>
      <input type="text" th:field="*{availableFrom}" value="2018-03-28" /> <br/>        

      <label for="price">价格 (RMB):</label>
      <input type="text" th:field="*{price}" size="10" value="198" /><br/>

      <input type="submit" value="提交"/>
</form>

11. Thymeleaf实战

https://www.e-learn.cn/index.php/thymeleaf/thymeleaf-project

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值