Spring boot 如何布局:装饰工程

Spring boot 如何布局:装饰工程,spring-boot,thymeleaf,Spring Boot,Thymeleaf,我在一个springboot(1.3.2)-thymeleaf(2.1.4)-thymeleaf布局方言(1.3.1)项目中遇到了一段代码,我正在处理的内容html文件包含: <html xmlns:th="http://www.thymeleaf.org" layout:decorator="layout/sitelayout"> ... <div th:fragment="content" class="container"> .... </div>

我在一个springboot(1.3.2)-thymeleaf(2.1.4)-thymeleaf布局方言(1.3.1)项目中遇到了一段代码,我正在处理的内容html文件包含:

<html xmlns:th="http://www.thymeleaf.org" layout:decorator="layout/sitelayout">
...

<div th:fragment="content" class="container">
....
</div>
<div layout:fragment="content">
    <h1>Static content for prototyping purposes only</h1>

    <p>
        This is the layout of the site. The actual content will come from individual views making use of this layout
    </p>
</div>

...
....

并且sitelayout.html文件包含:

<html xmlns:th="http://www.thymeleaf.org" layout:decorator="layout/sitelayout">
...

<div th:fragment="content" class="container">
....
</div>
<div layout:fragment="content">
    <h1>Static content for prototyping purposes only</h1>

    <p>
        This is the layout of the site. The actual content will come from individual views making use of this layout
    </p>
</div>

静态内容仅用于原型设计

这是网站的布局。实际内容将来自使用此布局的各个视图

===================================================


我在网上搜索,找不到足够的信息/文档,例如它是如何工作的。有人能给我指出正确的方向吗?

我有一些信息可以回答您的问题,比如如何使用此代码。仅供参考,我确实认为HTML标记中的代码应该是
layout:decoration
,而不是
layout:decorator

布局方言的基本描述

[…]布局方言为人们提供了使用分层方法的可能性[…]。Thymeleaf布局方言使用布局/装饰模板来设置内容的样式,并且可以将整个片段元素传递到包含的页面。[……]

参考资料

  • 请转到第4页,阅读有关
    布局:装饰的详细信息
    


希望这有帮助。

我想我终于找到了一个关于使用布局方言的thymeleaf布局模板的好教程:

布局:decorator处理器用于早期版本的thymeleaf()。最新版本使用layout:decoration,因此我很难获得关于layout:decorator的文档

通常,网站共享常见的页面组件,如页眉、页脚、菜单等。这些页面组件可以由相同或不同的布局使用。在项目中组织布局有两种主要样式:包含样式和层次样式。这两种风格都可以很容易地与Thymeleaf一起使用,而不会失去其最大的价值:自然模板


资料来源:

综合描述:

您知道Thymeleaf是一个模板引擎,它使用了几个概念:

  • 模板:
    模板是一个概念,意味着您可以更全面地编写html文件(可能包括其他模板)。这些模板文件 最后将由服务器端的Thymeleaf模板引擎处理,并创建一个常规html文件,该文件将发送到客户端
  • 布局(一般概念):
    布局是指文本、图像和其他对象在页面上的排列,是最重要的 网站设计师感兴趣的事情。通过布局概念,您可以 指定页面的总体结构/格式。布局文件可以没有内容(仅结构),也可以包含调用者共享的某些内容
  • 布局模板(=页面布局):
    布局模板是指一个布局文件,其中包含多个片段和空标记,以便布局调用者(页面 模板)调用并使用其结构(而模板本身 内容也包括在内)
  • 页面模板:
    页面模板是指页面的html文件,以便调用其他模板和片段并使用布局 模板的结构。页面模板最终将转换为 Thymeleaf模板引擎提供的常规html页面
  • 片段:
    片段是模板的一部分。ThymileAF允许您将模板的片段导入到另一个模板中
通常,开发人员会创建多个布局模板(用于不同的页面格式),这些模板将在其他页面模板之间共享。 布局/页面模板通常包含一些片段,例如页眉、导航、页脚和主要内容所在的主要部分。

现在什么是方言? 正如您所知,Thymeleaf是一个允许定制的工具,为此,方言允许您定义模板的处理方式。 事实上,
布局方言
按照进行装饰。

不同的方言:

  • Thymeleaf的核心库提供了一种称为标准的方言
    方言
    ,每个人都可以使用,并且使用OGNL
    处理模板的语言
  • Spring框架创建了一个名为SpringStandard的私有方言 方言。它类似于Thymeleaf标准方言,但有小调 调整以更好地使用Spring框架中的某些功能。对于 示例:它使用Spring表达式语言(SpringEL)而不是 因此,如果使用Spring框架,您应该使用这种方言
  • :这是一个开源项目,具有 更多功能,使您能够在中构建布局和可重用模板 以提高代码重用。此库使用
    布局:
    前缀作为其属性
  • :您可以扩展Thymeleaf并创建 我自己的方言
  • 示例:使用thymeleaf布局方言(方言编号3)的spring boot项目中的thymeleaf:

    
    org.springframework.boot
    
    因此,您必须在页面模板中使用
    布局:修饰
    ,并将其引用到主模板中。
    布局:标记中的装饰表示要使用此内容模板装饰的布局模板


    示例:

    这个问题问得真不错!为什么喜欢的人这么少?!?