`
郑云飞
  • 浏览: 817220 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

thymeleaf模板传值

 
阅读更多

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模板引擎

    SpringBoot与Thymeleaf模板引擎的整合是现代Java Web开发中的常见实践,它为开发者提供了便捷的MVC(Model-View-Controller)框架支持,实现了动态HTML页面的渲染。Thymeleaf是一款强大的服务器端模板引擎,尤其适用...

    基于HTML的Thymeleaf模板引擎设计源码分享

    本项目是一个基于HTML和Thymeleaf模板引擎的综合性设计源码,包含123个文件,涵盖51个HTML文件、14个Java文件、12个CSS文件、11个JavaScript文件,以及多种格式的图片和字体资源。该源码集成了丰富的HTML、Java、CSS...

    SpringBoot加Thymeleaf模板

    SpringBoot与Thymeleaf模板的整合是现代Java Web开发中的常见实践,它极大地简化了前端展示和后端逻辑的交互。SpringBoot以其简洁的配置和开箱即用的特性深受开发者喜爱,而Thymeleaf则是一款强大的服务器端模板引擎...

    springboot框架+thymeleaf模板引擎+layui前端框架+数据库

    本文将详细讲解基于SpringBoot框架、Thymeleaf模板引擎、Layui前端框架以及数据库集成的开源项目。该项目还涉及到了Redis缓存技术,旨在提供一个高效、易用的Web应用开发方案。 首先,SpringBoot是Spring生态系统的...

    springboot整合thymeleaf模板

    SpringBoot整合Thymeleaf模板是一项常见的Web开发任务,它结合了SpringBoot的便捷性和Thymeleaf的动态模板引擎,使得开发人员可以快速构建功能丰富的Web应用。下面将详细介绍这个过程及其涉及的关键知识点。 首先,...

    使用SpringBoot 集成Spring-data-jpa,Druid连接池,thymeleaf模板实现的一个简单网上商城项目.rar

    该项目是一个基于SpringBoot框架构建的简单网上商城应用,利用了Spring-data-jpa进行数据库操作,Druid作为数据连接池,并采用Thymeleaf模板引擎来处理前端展示。下面将详细介绍这三个核心组件及其在项目中的作用。 ...

    eclipse模板插件thymeleaf

    Eclipse 模板插件 Thymeleaf 是一个强大的开发工具,专为使用 Thymeleaf 模板引擎的 Java 开发者设计。Thymeleaf 是一个广泛应用于 Web 应用开发中的服务器端模板引擎,它允许开发者使用 HTML 作为模板语言,同时在...

    Spring Boot集成Thymeleaf模板引擎的完整步骤

    Spring Boot集成Thymeleaf模板引擎的完整步骤 本文将为大家介绍Spring Boot集成Thymeleaf模板引擎的完整步骤,从基本概念到实际配置,详细地介绍了Thymeleaf模板引擎的使用方法。 一、Thymeleaf模板引擎概述 ...

    SpringBoot-thymeleaf模板集成

    SpringBoot-thymeleaf模板集成是现代Java Web开发中常用的一种技术组合,它结合了Spring Boot的便捷性和Thymeleaf模板引擎的强大功能。Spring Boot致力于简化Spring应用的初始搭建以及开发过程,而Thymeleaf则是一款...

    Springboot怎么集成Thymeleaf模板引擎?

    Springboot 集成 Thymeleaf 模板引擎 Thymeleaf 是一个 XML/XHTML/HTML 模板引擎,开源的 Java 库,可以用于 SpringMVC 项目中,用于代替 JSP、FreeMarker 或者其他的模板引擎。它的主要特点是页面与数据分离,提高...

    thymeleaf模板中文手册

    - **上下文(Context)**: 上下文是Thymeleaf处理模板时使用的数据结构,它包含了要插入到模板中的变量和对象。 - **表达式语言(EL)**: Thymeleaf使用自己的表达式语言,可以访问模型数据,执行简单的逻辑运算。 - ...

    SpringBoot框架整合thymeleaf模板和mybatis

    然后,我们可以创建Thymeleaf模板文件,使用Thymeleaf语法来绑定数据和控制逻辑。对于MyBatis,我们需要定义Mapper接口和对应的XML文件,编写SQL语句,并在Service层中通过@Autowired注解注入Mapper实例进行数据库...

    thymeleaf模板解析.doc

    thymeleaf模板解析.doc

    ThymeLeaf模板引擎教材

    Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎, 能够处 理HTML, XML, JavaScript, CSS甚⾄纯⽂本。 Thymeleaf旨在提供⼀个优雅的、 ⾼度可维护的创建模板的⽅式。 为了实 现这⼀⽬标, Thymeleaf建⽴...

    thymeleaf使用模板

    默认情况下,Thymeleaf的模板文件位于`src/main/resources/templates`目录下。你可以在这里创建HTML文件,Thymeleaf会自动将其解析为动态页面。 4. **模型数据绑定** 在控制器中,可以通过`Model`或`ModelAndView...

    Java课程实验 Thymeleaf 模板应用

    Thymeleaf是一种用于Java和Spring应用程序的现代化服务器端Java模板引擎。它允许在模板中嵌入动态内容,并能够与后端Java代码进行交互,生成动态的HTML页面。 以下是Thymeleaf模板的一些基本特点和语法: 1. 声明...

    Thymeleaf模板驱动web1

    Thymeleaf 模板驱动 web1 Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎,类似 JSP,Velocity,FreeMaker 等,它也可以轻易的与 Spring MVC 等 Web 框架进行集成作为 Web 应用的模板引擎。Thymeleaf ...

    Spring Boot 2.0 + Thymeleaf模板+简单增删改查分页

    在本项目中,我们主要探讨的是如何利用Spring Boot 2.0.4版本与Thymeleaf模板引擎来实现一个包含基本CRUD操作(创建、读取、更新、删除)和分页功能的Web应用程序。Spring Boot是Spring框架的一个简化版,它提供了...

    07掌握Thymeleaf模板引擎.md

    07【掌握】Thymeleaf模板引擎.md

    整合thymeleaf模板引擎,在页面渲染后台数据.zip

    在本文中,我们将深入探讨如何在Spring Boot项目中整合Thymeleaf模板引擎,以便在页面上渲染后台数据。Thymeleaf是一个流行的Java模板引擎,它允许开发者使用自然的HTML来编写静态模板,然后在运行时将这些模板转换...

Global site tag (gtag.js) - Google Analytics