[thymeleaf] - 1.Thymeleaf是什么
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是什么的更多相关文章
- 【Thymeleaf】Thymeleaf模板对html实时刷新
解决方案 spring: thymeleaf: cache: false 修改完html代码后Ctrl+Shift+F9,重新编译即可刷新页面内容!
- 【Thymeleaf】Thymeleaf模板对没有结束符的HTML5标签解析出错的解决办法
解决方案 spring: thymeleaf: mode: LEGACYHTML5 <dependency> <groupId>net.sourceforge.nekohtml ...
- (一)Thymeleaf用法——Thymeleaf简介
1. thymeleaf认识 参考官方文档(Project version: 3.0.5.RELEASE) 1.1 介绍 Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能 ...
- Spring Boot整合Thymeleaf及Thymeleaf页面基本语法
引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- Layui + thymeleaf org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: " 错误解决
解决方法: 1.将layui的代码移动到新的js文件当中,用template模板引擎的方式引入: <script th:src="@{/static/js/facility/mover ...
- thymeleaf 基本表达式
Thymeleaf 基本表达式 如需了解thymeleaf以及thymeleaf整合spring,请参考<Thymeleaf模板引擎使用>.<Thymeleaf 集成spring&g ...
- SpringMVC4+thymeleaf3的一个简单实例(篇二:springMVC与thymeleaf的整合)
延续前篇内容. 开始之前,我们首先要准备以下12个jar文件:spring-aop-4.3.3.RELEASE.jarspring-beans-4.3.3.RELEASE.jarspring-cont ...
- Springboot与Thymeleaf模板引擎整合基础教程(附源码)
前言 由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也 ...
- Spring boot(三)整合mybaties+thymeleaf实现基础crud
工程结构: 首先在pom文件中引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xml ...
随机推荐
- 【Hadoop UI学习】Hue
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 zookeeper-3.4.11 Hue是一个开源的Apac ...
- DSO安装试运行
参考DSO初探 其中Pangolin安装的时候could not find GLEW,参考这里 libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev ...
- highcharts插件
详见官网:https://www.highcharts.com.cn/demo/highcharts 详细使用代码: <!DOCTYPE html> <html lang=" ...
- 财务自由VS精神自由
财务自由 财务自由,在物质层面改善人的生活.它使人不愁生计.住更宽敞明亮的房间,穿锦衣绸缎,自由自在地游玩,做自己想做的事儿.可是,这就是它的能力所及了.钱无法改变人的品味.审美和人格.它也无法告诉人 ...
- 设计模式之State(状态)(转)
State的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用? State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif ...
- 使用Hive读取ElasticSearch中的数据
本文将介绍如何通过Hive来读取ElasticSearch中的数据,然后我们可以像操作其他正常Hive表一样,使用Hive来直接操作ElasticSearch中的数据,将极大的方便开发人员.本文使用的 ...
- AtCoder Beginner Contest 069 ABCD题
题目链接:http://abc069.contest.atcoder.jp/assignments A - K-City Time limit : 2sec / Memory limit : 256M ...
- [转载]Cookie与Session的区别与联系及生命周期
前几天面试问了一个问题,当时记不太清了,上网查了下发现这个问题还真的很有讲究而且很重要,自己总结下做下记录. 一.Session与Cookie介绍 这些都是基础知识,不过有必要做深入了解.先简单介绍一 ...
- 自学Java第五周的总结
在这周里我在我要自学网上观看视频学习了有关java的基础知识,课程主要介绍JavaSE,这是整个Java体系的基础:课程将由浅入深,并结合案例进行讲解,在那里我将自己已学的知识进行了巩固,并由学习到了 ...
- 单例设计模式 --c#
单例设计模式:在单例设计模式中我们要保持对象始终是唯一的 参考代码: class SingleObject { private SingleObject() { } private static Si ...