
前端
文章平均质量分 92
银河架构师
微信搜索:银河架构师,发现更多精彩内容
展开
-
可能是最全的Thymeleaf参考手册:终极篇,全,全,全!!!
Thymeleaf是一个现代的、服务器端的Java模板引擎,适用于Web和独立环境。其主要目标是为开发工作流程带来异常优雅的自然模板——可以再浏览器中正确显示HTML,也可以作为静态原型,使开发团队协作更通畅。目前Thymeleaf已于Spring Framework集成,相信凭借Spring Framework的出色特性,能使Thymeleaf成为现代HTML5 JVM Web开发的首选。Thymeleaf全部的参考手册如下:可能是最全的Thymeleaf参考手册(一):配置 可能是最全的T原创 2020-06-11 17:05:13 · 1742 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(十六):模板解耦逻辑
解耦逻辑:概念到目前为止,模板都是以正常的方式完成,逻辑以属性的形式插入模板中。但是Thymeleaf还允许我们将模板标记与其逻辑完全分离,从而允许在HTML和XML模板模式下创建完全无逻辑的标记模板。主要思想是模板逻辑将在单独的逻辑文件中定义(更确切地说是逻辑资源,因为它不必是file)。默认情况下,该逻辑资源将是与模板文件位于同一位置(例如,文件夹)的附加文件,其名称相同,但扩展名为.th.xml:/templates+->/home.html+->/...原创 2020-06-10 10:12:48 · 464 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(十五):模板缓存
Thymeleaf的工作要归功于一组解析器(用于标记和文本),该解析器将模板解析为事件序列(打开标签,文本,关闭标签,注释等)和一系列处理器(每种需要一种行为)应用–修改模板解析的事件序列,以便通过将原始模板与我们的数据结合来创建我们期望的结果。默认情况下,它还包括存储已解析模板的缓存;在处理模板文件之前读取和解析模板文件所导致的事件顺序。在Web应用程序中工作时,此功能特别有用,它基于以下概念: 输入/输出几乎始终是所有应用程序中最慢的部分。相比之下,内存中处理非常快。 克隆现有...原创 2020-06-10 10:10:30 · 651 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(十四):其它配置
模板解析器在web项目中,我们使用ITemplateResolver的实现ServletContextTemplateResolver,用以从Servlet上下文中获取模板作为资源。除了通过实现ITemplateResolver来创建模板解析器之外,还包括一下四种实现: org.thymeleaf.templateresolver.ClassLoaderTemplateResolver,它将模板解析为类加载器资源,例如: return Thread.current...原创 2020-06-10 10:08:53 · 1492 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(十三):文本模板模式
文字语法在Thymeleaf的三种模板模式被认为是文字:TEXT,JAVASCRIPT和CSS。这将它们与标记模板模式区分开:HTML和XML。文本模板模式和标记模式之间的主要区别在于,在文本模板中,没有标签可以插入属性形式的逻辑,因此我们必须依靠其他机制。这些机制的第一个也是最基本的是内联的,我们已经在上一章中进行了详细介绍。内联语法是在文本模板模式下输出表达式结果的最简单方法,因此,这是文本电子邮件完美有效的模板。Dear [(${name})], Please fi...原创 2020-06-10 10:05:09 · 2237 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(十二):内联
表达式内联尽管标准方言允许我们使用标记属性来执行几乎所有操作,但是在某些情况下,我们更喜欢直接将表达式写到HTML文本中。例如,我们可能更喜欢这样编写:<p>Hello, [[${session.user.name}]]!</p>以代替:<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>在Thymeleaf中,[[....原创 2020-06-05 09:37:58 · 702 阅读 · 1 评论 -
可能是最全的Thymeleaf参考手册(十一):注释和块
Thymeleaf模板中的任何位置都可以使用标准的HTML / XML注释<!-- ... -->。这些注释中的所有内容均不会被Thymeleaf处理,并将一字不差的复制到结果页面:<!-- User info follows --><div th:text="${...}"> ...</div>Thymeleaf解析器级注释块解析器级别的注释块是在Thymeleaf对其进行解析时,将从模板中简单删除的代码。他们...原创 2020-06-04 11:35:27 · 479 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(十):优先级
当出现多个th:*属性时,会发生什么样的情况?<ul> <li th:each="item : ${items}" th:text="${item.description}">Item description here...</li></ul>我们希望th:each属性在之前执行,th:text以便获得所需的结果,但是考虑到HTML / XML标准没有给标记中的属性写入顺序赋予任何含义,因此必须在属性本身中建立优先级机制,...原创 2020-06-02 17:32:29 · 348 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(九):局部变量
Thymeleaf将局部变量称为为模板的特定片段定义的变量,并且仅可用于该片段内部的评估。我们已经看到的示例是商品产品列表页面中的迭代变量:<tr th:each="prod : ${prods}"> ...</tr>prod变量仅在<tr>标记范围内可用。特别的: th:*标签可用于在该标签中执行的所有其它属性,该属性的优先级低于th:each(这意味着它们将在th:each之后执行)。 它将可用于&...原创 2020-06-01 16:53:37 · 545 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(八):模板布局
模板片段包含定义和引用片段在模板中,经常需要包含其他模板中的部分,例如页脚,页眉,菜单等部分。为了做到这一点,Thymeleaf需要定义这些要包含的部分“片段”,可以使用th:fragment属性来完成。假设我们要在所有页面中添加标准的版权页脚,因此我们创建一个/WEB-INF/templates/footer.html包含以下代码的文件:<!DOCTYPE html><html xmlns:th="http://www.thymele...原创 2020-05-31 18:03:15 · 1050 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(七):条件评估
简单条件有的时候,模板的一部分仅在满足特定条件的情况下才能出现。例如,假设我们要在产品表中显示一列,其中包含每个产品的评论数量,如果有评论,则指向该产品的评论详细信息页面的链接。为了做到这一点,我们将使用以下th:if属性:<table> <tr> <th>NAME</th> <th>PRICE</th> <th>IN STOCK</th> &...原创 2020-05-31 17:37:31 · 335 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(六):迭代
在前端页面中,总是出现需要遍历集合中的元素以展示所有信息的场景。Thymeleaf标准方言为我们提供了一个有用的属性th:each。用法假设后台控制器添加了一个商品列表的属性prods。然后,我们使用th:each在模板中使用来遍历产品列表:<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"> <head> <title>Good Thym...原创 2020-05-31 17:32:47 · 610 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(五):设置属性值
本文将说明在Thymeleaf中,如何在标记中设置、或修改属性值的方法。设置任何属性的值假设有以下模板代码:<form action="subscribe.html"> <fieldset> <input type="text" name="email" /> <input type="submit" value="Subscribe!" /> </fieldset></form&g...原创 2020-05-22 17:53:21 · 1090 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(四):标准表达式语法(三)
片段表达式提供了模板共用的简便方法,同时还可以作为参数传递给其它模板。最常见的用途是使用th:insert或th:replace进行片段插入:<div th:insert="~{commons :: main}">...</div>。同时,它们可以像其他任何变量一样,在任意地方使用:原创 2020-05-22 08:59:21 · 1340 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(三):标准表达式语法(二)
选择变量变量表达式不仅可以写成${...},而且还可以写成*{...}。但是,有一个重要的区别:星号语法针对选定的对象进行评估,而不是整个上下文上。也就是说,只要没有选定的对象,$和*的语法就完全一样。什么是选定的对象?就是使用th:object标签的表达式的结果。如个人信息页面展示姓名、国籍:<div th:object="${session.user}"> <p>Name: <span th:text="*{firstNa...原创 2020-05-09 09:07:30 · 571 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(二):标准表达式语法(一)
任何一种语言,都有其语法约束,前端模板引擎也不例外。本文将介绍Thymeleaf方言中最重要的部分之一:标准表达式语法。标准表达式语法的基本内容如下。 简单表达式 变量表达式:${...} 选择变量表达式:*{...} 信息表达式:#{...} 链接URL表达式:@{...} 片段表达式:~{...} 常量 文本常量:'example','other example',... ...原创 2020-05-09 09:03:10 · 1273 阅读 · 0 评论 -
可能是最全的Thymeleaf参考手册(一):配置
Thymeleaf是什么简而言之,Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本。简单点说,就是Thymeleaf提供一种优雅且高度可维护的模板创建方式,可缩小设计团队与开发团队之间的差距。Thymeleaf也已经从一开始就遵从Web标准,尤其是HTML5,这就允许创建一些完全验证的模板。原创 2020-05-07 10:23:52 · 2039 阅读 · 0 评论