thymeleaf 转义html_Thymeleaf参考手册(一):简介

12e7932ac390e02316bd2675324a04d1.png

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模板模式允许非标记性质的模板使用特殊的语法。此类模板的示例可能是文本电子邮件或模板化文档。请注意,HTML或XML模板也可以处理为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可能包含一段代码,但这些代码片段无法直接由浏览器显示:

<form:inputText name="userName" value="${user.name}" />

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

<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

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

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

我是银河架构师,十年饮冰,难凉热血,愿历尽千帆,归来仍是少年!

如果文章对您有帮助,请举起您的小手,轻轻【三连】,这将是笔者持续创作的动力源泉。当然,如果文章有错误,或者您有任何的意见或建议,请留言。感谢您的阅读!


文章不定时更新,可微信搜索「银河架构师」,精彩内容,先睹为快!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值