作者:empty 页数:235 出版社:empty |
Thyme leaf是面向Web和独立环境的现代服务器端Java模板引擎, 能够处理HTML, XML, JavaScript, CSS甚至纯文本。Thyme leaf旨在提供一个优雅的、高度可维护的创建模板的方式。为了实现这一目标, Thyme leaf建立在自然模板的概念上, 将其逻辑注入到模板文件中,不会影响模板设计原型。这改善了设计的沟通,弥合了设计和开发团队之间的差距。Thyme leaf从设计之初就遵循Web标准——特别是HTML 5标准, 如果需要, Thyme leaf允许您创建完全符合HTML 5验证标准的模板。
这六种模版模式包含两种标记模板模式(HTML和XML) , 三种文本模板模式(TEXT, JAVASCRIPT和CSS) 和一个无操作模板模式(RAW) 。HTML模板模式将允许任何类型的HTML输入, 包括HTML 5, HTML 4和XHTML。Thyme leaf在html 5非验证模式和验证模式下都能正确执行, 并且在输出结果中最大程度的遵循模板代码/结构。XML模板模式将允许XML输入。在这种情况下, 代码预期形式良好-没有未关闭的标签, 没有引用属性等, 如果出现非法XML输入, 解析器将抛出异常。请注意, Thyme leaf不会执行XML验证(针对DTD或XML架构) 。TEXT模板模式将允许对非标记特性的模板使用特殊语法。例如:文本电子邮件或模板文档。请注意, HTML或XML模板也可以作为TEXT处理,在这种情况下,它们将不会被解析为标记,并且每个标签如:DOCTYPE, 注释等都将被视为纯文本。JAVASCRIPT模板模式将允许在Thyme leaf应用程序中处理JavaScript文件。这意味着可以在JavaScript文件中像与HTML文件中一样的方式使用模型数据, 但可以使用特定于JavaScript的集成, 例如专门的转义或自然脚本。JAVASCRIPT模板模式被认为是文本模式, 因此使用与TEXT模板模式相同的特殊语法。1.2Thymeleaf能处理哪些模版CSS模板模式将允许处理涉及Thyme leaf应用程序的CSS文件。与JAVASCRIPT模式类似, CSS模板模式也是文本模式, 并使用TEXT模板模式下的特殊处理语法。RAW模板模式根本不会处理模板。它用于将未经修改的资源(文件,URL响应等) 插入正在处理的模板中。例如, HTML格式的外部不受控制的资源可以包含在应用程序模板中,安全地知道这些资源可能包含的任何Thyme leaf代码将不会被执行。
1.3Thymeleaf标准方言Thyme leaf是一个扩展性很强的模板引擎(实际上它可以称为模板引擎框架) , Thyme Leaf允许您自定义模板, 并且很好的处理该模版的细节。将一些逻辑应用于标记组件(标签,某些文本,注释或只有占位符)的一个对象被称为处理器,通常这些处理器的集合以及一些额外的组件就组成了Thyme leaf方言。开箱即用, Thyme leaf的核心库提供了一种称为标准方言的方言,这对大多数用户来说应该是足够的。请注意,方言实际上可能不包含处理器,并且完全由其他类型的组件构成,但处理器绝对是最常见的用例。本教程涵盖Thyme Leaf的标准方言。您将在后面章节中的每个属性和语法功能都由Thyme Leaf标准方言定义, 即使没有明确提及。当然,如果用户希望在使用标准方言库的高级功能的同时还想定义自己的处理逻辑,您也可以创建自己的方言(甚至扩展标准的方言)。您也可以将Thyme leaf配置为一次使用几种方言。官方的thyme leaf-spring 3和thyme leaf-spring 4的整合包里都定义了一种称为 spring标准方言 的方言, 该方言与“Thyme Leaf标准方言 大致相同, 但是对于Spring框架中的某些功能(例如, 通过使用Spring EL表达式代替OGNL表达式) 做了一些简单的调整。所以如果你是一个Spring MVC用户, 使用Thyme Leaf并不会浪费你的时间, 因为你在这里学到的所有东西都将可以应用到你的Spring应用程序中。
Thyme Leaf标准方言中的大多数处理器都是是属性处理器。这样, 即使在模版未被处理之前, 浏览器也可以正确地显示HTML模板文件, 因为浏览器将简单地忽略其不识别的属性。例如, 像下面这段JSP模版的代码片段就不能在模版被解析之前通过浏览器直接显示了:1.3Thymeleaf标准方言
关于本翻译
1.Thyme leaf简介
1.1Thymeleaf是什么
1.2Thymeleaf能处理哪些模版
1.3Thymeleaf标准方言
2.2.1模版解析器
2.2.2模版引擎
3.1.1使用th:text和外部化文本
3.1.2上下文
3.1.3执行模版引擎
3.2更多关于文本和变量的知识
3.2.1非转义文本
3.2.2使用和显示变量
4.2.1基本表达式对象
4.2.2工具表达式对象
4.2.3重新格式化首页的日期
4.4.1主页菜单
4.4.2服务器相对URL
4.6.1纯文本
4.6.2数字字面量
4.6.3布尔字面量
4.6.4NULL字面量
4.6.5文本符号
4.12默认表达式(Elvis peratr)
2.示例项目:Gd Thymes Virtual Grcery
2.1一个杂货店的网站
2.2创建和配置模版引擎
3.使用文本
3.1多语言欢迎页
4.标准表达式语法
4.1消息
4.2变量
4.3选择表达式(星号语法
4.4URL链接
4.5代码片段
4.6字面量
4.7追加文本
4.8文本替换
4.9算术运算符
4.10比较和等值运算符
4.11条件表达式
4.13哑操作符号
4.14预处理
4.15数据类型转换与格式化
5.设置属性值
5.1设置任何属性的值
5.2设置指定属性的值
5.3一次设置多个属性的值
5.4附加和前缀
5.5固定值的布尔属性
7.2 switch语句
11.4合成块标签-th:blck
12.3内联JavaScript
13.3文本原型注释块:添加代码
13.4文本解析器级注释块:删除代码
17.3th:ref属性
17.4模板解耦逻辑对性能的影响
17.5模版解耦逻辑的分辨率
18.1基本对象
5.6设置其他属性的值(默认属性处理器
5.7HTML 5友好属性和标签名的支持
6.循环迭代
6.1循环的基本语法
6.2保存迭代状态
6.3通过数据懒加载进行迭代优化
7.条件判断
7.1简单条件判断:i和unless
8.模板布局
8.1包含模板片段
8.2可参数化的片段签名
8.3灵活的布局:不仅仅是片段插入
8.4删除模版片段
9.局部变量
10.属性优先级
11.注释
11.1标准HTML/XML注释