thymeleaf layout

摘自:https://tomoya92.github.io/2017/03/09/thymeleaf-layout/

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>
时间: 2024-10-13 11:52:06

thymeleaf layout的相关文章

一篇好文档,请Thymeleaf Layout Dialect

Thymeleaf Layout Dialect https://ultraq.github.io/thymeleaf-layout-dialect/ This will introduce the layout namespace, and 5 new attribute processors that you can use in your templates: decorate, title-pattern, insert, replace, and fragment. 看完之后,能让我了

thymeleaf 布局layout

以前写过一篇使用thymeleaf实现div中加载html 大部分内容都没问题,只是部分知识已经过时了. 重新记录: 依赖依然是 <dependency> <groupId>nz.net.ultraq.thymeleaf</groupId> <artifactId>thymeleaf-layout-dialect</artifactId> </dependency> index.html作为layout模板,不需要引入xmlns:la

Spring-boot(二)--thymeleaf

Java代码 @Controller @RequestMapping("/") public class MessageController { private final MessageRepository messageRepository; @Autowired public MessageController(MessageRepository messageRepository) { this.messageRepository = messageRepository; }

java+thymeleaf-layout-dialect+thymeleaf的使用

一,添加pom.xml文件依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>nz.net.ultraq.thymeleaf</groupId> <

SpringMVC之安全性(二)登录界面

在这一节,我们将把之前的SeurityConfiguration的类分成下面两个: 1)        ApiSecurityConfiguration :这个是首先被布局的.这个确保使用基本的身份验证RESTful. 2)        WebSecurityConfiguration :这个是布局重置登录的页面. 1.  ApiSecurityConfiguration 我们一样的删除了之前的SeurityConfiguration,然后在相同的包下面添加ApiSecurityConfigu

SpringMVC之安全性(一)

在前面的学习中,我们的系统并没的登录设置,这样对于我们系统来说是不安全的.我们需要指定用户或注册的用户可以登录我们系统.由于我们这个系统并没有用到数据库,我们以我就在代码中指定用户可以登录我们的系统.正常情况是要数据库来管理注册用户. 1.登录页面 使用SprigMVC来处理系统安全是非常快捷的,我们只添加依赖架包就可行了.在build.gradle的文件中添加下面的代码: compile'org.springframework.boot:spring-boot-starter-security

CAS 5.1.X 的搭建和使用(二)—— 通过Overlay搭建服务端-其它配置说明

这节主要解释一下上一节剩余的一些配置是做什么的,为了阅读方便直接在配置文件中写注释 #STEP 3 在TOMCAT8.5中跑一个模板然后将其war包中解压出来的的application.properties复制出来,放到手动创建的src下的resources里面 ## # CAS Server Context Configuration # server.context-path=/cas server.port=8443 #STEP 5添加认证服务 ①---------------------

在Spring Boot中使用Spring-data-jpa实现分页查询(转)

在我们平时的工作中,查询列表在我们的系统中基本随处可见,那么我们如何使用jpa进行多条件查询以及查询列表分页呢?下面我将介绍两种多条件查询方式. 1.引入起步依赖    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency

springboot知识入门

一.Spring Boot 入门1.Spring Boot 简介简化Spring应用开发的一个框架:整个Spring技术栈的一个大整合:J2EE开发的一站式解决方案:2.微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务:可以通过HTTP的方式进行互通:单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元:详细参照微服务文档3.环境准备http://www.gulixueyuan.com/ 谷粒学院环境约束–