可能是最全的Thymeleaf参考手册(一):配置

 

Thymeleaf是什么

 

首先,看一下官网的描述。

Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text.

简而言之,Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本。

 

Thymeleaf有何优势

 

再看一下官网的描述。

The main goal of Thymeleaf is to provide an elegant and highly-maintainable way of creating templates. To achieve this, it builds on the concept of Natural Templates to inject its logic into template files in a way that doesn’t affect the template from being used as a design prototype. This improves communication of design and bridges the gap between design and development teams.

Thymeleaf has also been designed from the beginning with Web Standards in mind – especially HTML5 – allowing you to create fully validating templates if that is a need for you.

简单点说,就是Thymeleaf提供一种优雅且高度可维护的模板创建方式,可缩小设计团队与开发团队之间的差距。Thymeleaf也已经从一开始就遵从Web标准,尤其是HTML5,这就允许创建一些完全验证的模板。

 

可处理的模板

 

Thymeleaf提供六种开箱即用的模板,均可以称为“模板模式”。

  • HTML

  • XML

  • TEXT

  • JAVASCRIPT

  • CSS

  • RAW

 

其中,有两种标记型模板模式(HTMLXML),三个文本型模板模式(TEXTJAVASCRIPTCSS)和无操作型模板模式(RAW)。 

HTML模板模式允许任何类型的HTML的输入,包括HTML5,HTML4和XHTML。不会进行任何验证或格式的正确性检查,并且模板代码/结构将在输出中得到最大程度的保留。

XML模板模式允许XML输入。在此情况下,代码应该保持格式正确。没有未关闭的标签、没有未引用的属性等,如果发现不友好的格式,解析器将抛出异常。请注意,将不会执行任何验证(针对DTD或XML模式)。

TEXT模板模式允许非标记性质的模板使用特殊的语法。此类模板的示例可能是文本电子邮件或模板化文档。请注意,HTMLXML模板也可以处理为TEXT,在这种情况下,它们不会被解析为标记,并且每个标签、DOCTYPE、注释等都将被视为纯文本。

JAVASCRIPT模板模式允许在Thymeleaf应用程序中处理JavaScript文件。这意味着能够以与在HTML文件中相同的方式,在JavaScript文件中使用模型数据,但是需要特定于JavaScript的集成,如专用转义原始脚本JAVASCRIPT模板模式也会被认为是一种文本模式,因此可以使用与TEXT模板模式相同的特殊语法。

CSS模板模式允许处理Thymeleaf应用中涉及的CSS文件。与JAVASCRIPT模式相似,CSS模板模式也是文本模式,并使用TEXT模板模式中的特殊语法处理。

RAW模板模式不会处理所有模板,它旨在用于将未触及的资源(文件,URL响应等)插入正在处理的模板中。例如,可以将HTML格式的外部不受控制的资源包含在应用程序模板中,因为他们知道这些资源包含的任何Thymeleaf代码都将不会执行。

 

 

标准方言

 

Thymeleaf是一个扩展性非常好的模板引擎(实际上,它可以称为模板引擎框架),可自定义模板处理细节。

将某种逻辑应用于标记工件(标记,文本,注释或仅占位符)的对象称为处理器,那么这些处理器的集合(也许还有一些额外的工件)就是一个方言的组成。开箱即用的Thymeleaf核心库提供了一种称为Standard Dialect的方言,对于大多数用户而言,该方言就足够了。

当然,如果用户想要利用高级功能的同时,定义自己的处理逻辑,可以创建自己的方言(甚至扩展标准方言)。Thymeleaf也可以配置使用多种方言。

官方的thymeleaf-spring3和thymeleaf-spring4集成软件包都定义了一种称为“ SpringStandard Dialect”的方言,该方言与Standard Dialect大致相同,但进行了少量改动以更好地利用Spring Framework中的某些功能(例如,使用Spring Expression Language或SpringEL代替OGNL)。因此,如果您是Spring MVC用户,那么您会节省大量时间,因为您在此处学习的几乎所有内容都将在Spring应用程序中使用过。

标准方言的大多数处理器是属性处理器。这使浏览器甚至在处理之前就能够正确显示HTML模板文件,因为它们将简单地忽略其他属性。例如,尽管使用标签库的JSP可能包含一段代码,但这些代码片段无法直接由浏览器显示:

而Thymeleaf标准方言将使我们能够通过以下方式实现相同的功能:

这不仅可以由浏览器正确显示,而且还允许我们(可选)在其中指定一个值属性(如“ James Carrot”),当在浏览器中静态打开原型时将显示该属性;而后在页面渲染时,${user.name}将会被替换为为模板处理过程中评估所得的值。

这可以帮助您的设计人员和开发人员使用完全相同的模板文件,并减少将静态原型转换为工作模板文件所需的工作。执行此操作的功能称为自然模板化的功能。

 

 

笔者开通了个人微信公众号【银河架构师】,分享工作、生活过程中的心得体会,填坑指南,技术感悟等内容,会比博客提前更新,欢迎订阅。

 

你可能感兴趣的:(前端,日积月累)