Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎,能够处 理HTML,XML,JavaScript,CSS甚⾄纯⽂本。

Thymeleaf旨在提供⼀个优雅的、⾼度可维护的创建模板的⽅式。 为了实 现这⼀⽬标,Thymeleaf建⽴在⾃然模板的概念上,将其逻辑注⼊到模板 ⽂件中,不会影响模板设计原型。 这改善了设计的沟通,弥合了设计和 开发团队之间的差距。

Thymeleaf从设计之初就遵循Web标准——特别是HTML5标准 ,如果需 要,Thymeleaf允许您创建完全符合HTML5验证标准的模板。

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模板 模式相同的特殊语法。

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

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}" />

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

[thymeleaf] - 1.Thymeleaf是什么的更多相关文章

  1. 【Thymeleaf】Thymeleaf模板对html实时刷新

    解决方案 spring: thymeleaf: cache: false 修改完html代码后Ctrl+Shift+F9,重新编译即可刷新页面内容!

  2. 【Thymeleaf】Thymeleaf模板对没有结束符的HTML5标签解析出错的解决办法

    解决方案 spring: thymeleaf: mode: LEGACYHTML5 <dependency> <groupId>net.sourceforge.nekohtml ...

  3. (一)Thymeleaf用法——Thymeleaf简介

    1. thymeleaf认识 参考官方文档(Project version: 3.0.5.RELEASE)   1.1 介绍 Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能 ...

  4. Spring Boot整合Thymeleaf及Thymeleaf页面基本语法

    引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  5. Layui + thymeleaf org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: " 错误解决

    解决方法: 1.将layui的代码移动到新的js文件当中,用template模板引擎的方式引入: <script th:src="@{/static/js/facility/mover ...

  6. thymeleaf 基本表达式

    Thymeleaf 基本表达式 如需了解thymeleaf以及thymeleaf整合spring,请参考<Thymeleaf模板引擎使用>.<Thymeleaf 集成spring&g ...

  7. SpringMVC4+thymeleaf3的一个简单实例(篇二:springMVC与thymeleaf的整合)

    延续前篇内容. 开始之前,我们首先要准备以下12个jar文件:spring-aop-4.3.3.RELEASE.jarspring-beans-4.3.3.RELEASE.jarspring-cont ...

  8. Springboot与Thymeleaf模板引擎整合基础教程(附源码)

    前言 由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也 ...

  9. Spring boot(三)整合mybaties+thymeleaf实现基础crud

    工程结构: 首先在pom文件中引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xml ...

随机推荐

  1. double,失去精度

    double,失去精度: amount.doubleValue() * 使用 BigDecimal: public static double add(double d1,double d2){ Bi ...

  2. 20165215 实验一 Java开发环境的熟悉

    20165215 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

  3. 转:wcf大文件传输解决之道(2)

    此篇文章主要是基于http协议应用于大文件传输中的应用,现在我们先解析下wcf中编码器的定义,编码器实现了类的编码,并负责将Message内存中消息转变为网络发送的字节流或者字节缓冲区(对于发送方而言 ...

  4. ztree使用实例

    一.当某节点被选择或被取消选择时获取所有被选择的节点: <link rel="stylesheet" href="./static/libs/ztree/css/m ...

  5. AtCoder Beginner Contest 085(ABCD)

    A - Already 2018 题目链接:https://abc085.contest.atcoder.jp/tasks/abc085_a Time limit : 2sec / Memory li ...

  6. brctl 命令详解

    安装网桥管理工具包:bridge-utile ```# yum install bridge-utils -y``` ```使用brctl命令创建网桥br1```# brctl addbr br1`` ...

  7. 使用隐含参数testMappingSpeed排查GoldenGate抽取慢的步骤

    OGG经典抽取模式读取redo慢的检查步骤,可以采用以下几个步骤来排查. 步骤一,确认是否抽取进程的写入有问题 1. 在原有抽取进程上,执行如下命令,统计抽取进程的效率 GGSCI> stats ...

  8. OpenStack平台上,windows云主机可以ping通百度但是无法打开网页,部分其它网页可以打开

    问题描述: 在OpenStack平台上的64位Windows7虚拟机,可以ping通百度,但是却无法打开百度网页. 于是,笔者又对其它网址进行的测试,发现淘宝.京东.携程部分网页可以打开,而新浪等等网 ...

  9. JS笔记—03(DOM编程)

    1. 动态体现:HTML代码加载到浏览器,代码运行后改变文档(DOM树)增删改查节点.例如:ajax(不是新技术,是几个技术的合体js+http后台操作)就是这样的原理 2.js对象(浏览器对象.脚本 ...

  10. Oracle数据库的入门之一

    Oracle的介绍: Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle ...