thymeleaf的layout常用的有两种方式用法
第一种
将页面里的每个部分都分成 块
-> fragment
使用 th:include
和 th:replace
来引入页面
这种用法没有layout的概念, 因为每个部分都是 fragment
, 下面例子说明
<!-- index.html -->
<html>
<head>
<meta charset="utf-8"/>
<title>demo</title>
</head>
<body>
<div th:include="components/header :: header"></div>
<div class="container">
<h1>hello world</h1>
</div>
<div th:include="components/footer :: footer"></div>
</body>
</html>
<!-- components/header.html -->
<header th:fragment="header">
<ul>
<li>news</li>
<li>blog</li>
<li>post</li>
</ul>
</header>
<!-- components/footer.html -->
<header th:fragment="footer">
<div>i am footer.</div>
</header>
上面例子里用到的是th:include
, 也就是把定义好的fragment
引入的意思, 还有一个是th:replace
, 意思是替换当前页面里的这部分代码, 下面例子说明一下
<html>
<head>
<meta charset="utf-8"/>
<title>demo</title>
</head>
<body>
<div th:replace="components/header :: header">
<!-- 使用th:replace进来的header.html会替换下面的这个header -->
<header>
<ul>
<li>static - news</li>
<li>static - blog</li>
<li>static - post</li>
</ul>
</header>
</div>
<div class="container">
<h1>hello world</h1>
</div>
<div th:include="components/footer :: footer"></div>
</body>
</html>
第二种
写一个layout.html页面,当作页面的基础页面
<!-- layout/layout.html -->
<html>
<head>
<meta charset="utf-8"/>
<title>demo</title>
</head>
<body>
<div th:include="components/header :: header"></div>
<div layout:fragment="content"></div>
<div th:include="components/footer :: footer"></div>
</body>
</html>
在子页面里使用 layout:decorator
来将子页面里的内容加入到 layout.html里去
<!-- index.html -->
<html layout:decorator="layout/layout">
<head>...</head>
<body>
<div layout:fragment="content">
<h2>hello world!!!</h2>
</div>
</body>
</html>
这样在layout.html里引入的css,js,imgs都可以在子页面里用了,而且在子页面里还可以引入子页面需要用到的css,js,imgs, 就很方便了 推荐
模板传值
假如要往header.html里传入一个tab来区别应该高亮哪个菜单,可以使用下面的写法实现
先定一个样式
.active {
background-color: green;
}
<header th:fragment="header (tab)">
<ul>
<li><span th:class="${tab eq 'news'} ? active">news</span></li>
<li><span th:class="${tab eq 'blog'} ? active">blog</span></li>
<li><span th:class="${tab eq 'post'} ? active">post</span></li>
</ul>
</header>
调用写法
<div th:include="components/header :: header(tab='blog')"></div>
相关链接:
http://www.thymeleaf.org/doc/articles/layouts.html
END
原文链接: https://tomoya92.github.io/2017/03/09/thymeleaf-layout/
相关推荐
SpringBoot与Thymeleaf模板引擎的整合是现代Java Web开发中的常见实践,它为开发者提供了便捷的MVC(Model-View-Controller)框架支持,实现了动态HTML页面的渲染。Thymeleaf是一款强大的服务器端模板引擎,尤其适用...
本项目是一个基于HTML和Thymeleaf模板引擎的综合性设计源码,包含123个文件,涵盖51个HTML文件、14个Java文件、12个CSS文件、11个JavaScript文件,以及多种格式的图片和字体资源。该源码集成了丰富的HTML、Java、CSS...
SpringBoot与Thymeleaf模板的整合是现代Java Web开发中的常见实践,它极大地简化了前端展示和后端逻辑的交互。SpringBoot以其简洁的配置和开箱即用的特性深受开发者喜爱,而Thymeleaf则是一款强大的服务器端模板引擎...
本文将详细讲解基于SpringBoot框架、Thymeleaf模板引擎、Layui前端框架以及数据库集成的开源项目。该项目还涉及到了Redis缓存技术,旨在提供一个高效、易用的Web应用开发方案。 首先,SpringBoot是Spring生态系统的...
SpringBoot整合Thymeleaf模板是一项常见的Web开发任务,它结合了SpringBoot的便捷性和Thymeleaf的动态模板引擎,使得开发人员可以快速构建功能丰富的Web应用。下面将详细介绍这个过程及其涉及的关键知识点。 首先,...
该项目是一个基于SpringBoot框架构建的简单网上商城应用,利用了Spring-data-jpa进行数据库操作,Druid作为数据连接池,并采用Thymeleaf模板引擎来处理前端展示。下面将详细介绍这三个核心组件及其在项目中的作用。 ...
Eclipse 模板插件 Thymeleaf 是一个强大的开发工具,专为使用 Thymeleaf 模板引擎的 Java 开发者设计。Thymeleaf 是一个广泛应用于 Web 应用开发中的服务器端模板引擎,它允许开发者使用 HTML 作为模板语言,同时在...
Spring Boot集成Thymeleaf模板引擎的完整步骤 本文将为大家介绍Spring Boot集成Thymeleaf模板引擎的完整步骤,从基本概念到实际配置,详细地介绍了Thymeleaf模板引擎的使用方法。 一、Thymeleaf模板引擎概述 ...
SpringBoot-thymeleaf模板集成是现代Java Web开发中常用的一种技术组合,它结合了Spring Boot的便捷性和Thymeleaf模板引擎的强大功能。Spring Boot致力于简化Spring应用的初始搭建以及开发过程,而Thymeleaf则是一款...
Springboot 集成 Thymeleaf 模板引擎 Thymeleaf 是一个 XML/XHTML/HTML 模板引擎,开源的 Java 库,可以用于 SpringMVC 项目中,用于代替 JSP、FreeMarker 或者其他的模板引擎。它的主要特点是页面与数据分离,提高...
- **上下文(Context)**: 上下文是Thymeleaf处理模板时使用的数据结构,它包含了要插入到模板中的变量和对象。 - **表达式语言(EL)**: Thymeleaf使用自己的表达式语言,可以访问模型数据,执行简单的逻辑运算。 - ...
然后,我们可以创建Thymeleaf模板文件,使用Thymeleaf语法来绑定数据和控制逻辑。对于MyBatis,我们需要定义Mapper接口和对应的XML文件,编写SQL语句,并在Service层中通过@Autowired注解注入Mapper实例进行数据库...
thymeleaf模板解析.doc
Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎, 能够处 理HTML, XML, JavaScript, CSS甚⾄纯⽂本。 Thymeleaf旨在提供⼀个优雅的、 ⾼度可维护的创建模板的⽅式。 为了实 现这⼀⽬标, Thymeleaf建⽴...
默认情况下,Thymeleaf的模板文件位于`src/main/resources/templates`目录下。你可以在这里创建HTML文件,Thymeleaf会自动将其解析为动态页面。 4. **模型数据绑定** 在控制器中,可以通过`Model`或`ModelAndView...
Thymeleaf是一种用于Java和Spring应用程序的现代化服务器端Java模板引擎。它允许在模板中嵌入动态内容,并能够与后端Java代码进行交互,生成动态的HTML页面。 以下是Thymeleaf模板的一些基本特点和语法: 1. 声明...
Thymeleaf 模板驱动 web1 Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎,类似 JSP,Velocity,FreeMaker 等,它也可以轻易的与 Spring MVC 等 Web 框架进行集成作为 Web 应用的模板引擎。Thymeleaf ...
在本项目中,我们主要探讨的是如何利用Spring Boot 2.0.4版本与Thymeleaf模板引擎来实现一个包含基本CRUD操作(创建、读取、更新、删除)和分页功能的Web应用程序。Spring Boot是Spring框架的一个简化版,它提供了...
07【掌握】Thymeleaf模板引擎.md
在本文中,我们将深入探讨如何在Spring Boot项目中整合Thymeleaf模板引擎,以便在页面上渲染后台数据。Thymeleaf是一个流行的Java模板引擎,它允许开发者使用自然的HTML来编写静态模板,然后在运行时将这些模板转换...