thymeleaf模版实现页面布局(layout)两种方法

方法一:

使用thymeleaf的layout:fragment标签,布局页如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
    xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
    * {font-family: Microsoft YaHei, Tahoma, Helvetica, Arial, sans-serif;}
    .header {background-color: #f5f5f5;padding: 20px;}
    .header a {padding: 0 20px;}
    .container {padding: 20px;margin:20px auto;}
    .footer {height: 40px;background-color: #f5f5f5;border-top: 1px solid #ddd;padding: 20px;}
    </style>
</head>
<body>
    <header class="header">
        <div>
            <a th:href="@{/one}">布局方法一</a> <a th:href="@{/two}">布局方法二</a>
        </div>
    </header>
    <div class="container" layout:fragment="content"></div>
    <footer class="footer">
        <div>
            <p style="float: left">&copy; Hylun 2017</p>
            <p style="float: right">
                Powered by <a href="http://my.oschina.net/alun" target="_blank">Alun</a>
            </p>
        </div>
    </footer>
    <script th:inline="javascript" th:if="${alertMsg}">alert('[[${alertMsg}]]');</script>
</body>
</html>

内容页如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
    xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
    layout:decorator="layout1"><!-- layout文件路径-->
<head>
    <title>页面1</title>
</head>
<body>
    <div layout:fragment="content">
        页1内容 页1内容 页1内容 页1内容 页1内容 页1内容 页1内容 页1内容 页1内容 页1内容
    </div>
</body>
</html>

在页面渲染时,thymeleaf引擎会将内容页中

中的内容替换至布局页的
,达到布局的目的。

方法二:

使用thymeleaf的th:include或th:replace标签,布局页如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:text="${title}"></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
    * {font-family: Microsoft YaHei, Tahoma, Helvetica, Arial, sans-serif;}
    .header {background-color: #f5f5f5;padding: 20px;}
    .header a {padding: 0 20px;}
    .container {padding: 20px;margin:20px auto;}
    .footer {height: 40px;background-color: #f5f5f5;border-top: 1px solid #ddd;padding: 20px;}
    </style>
</head>
<body>
    <header class="header">
        <div>
            <a th:href="@{/one}">布局方法一</a> <a th:href="@{/two}">布局方法二</a>
        </div>
    </header>
    <div  class="container" th:include="::content"></div>
    <footer class="footer">
        <div>
            <p style="float: left">&copy; Hylun 2017</p>
            <p style="float: right">
                Powered by <a href="http://my.oschina.net/alun" target="_blank">Alun</a>
            </p>
        </div>
    </footer>
    <script th:inline="javascript" th:if="${alertMsg}">alert('[[${alertMsg}]]');</script>
</body>
</html>

内容页如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
    th:replace="layout2 (title='页面2')"><!-- layout文件路径-->
    <div th:fragment="content">
        页2内容 页2内容 页2内容 页2内容 页2内容
    </div>
</html>

在一般博文中多为使用方法一,方法二也一般只用于包含单个页面片段,其实th:include及th:replace包含整个页面也是没有问题的,而且还可以在包含的同时传参数给包含的页面,强烈推荐使用此方法

用springboot编写的示例demo已经更新至https://github.com/hylun/SpringWeb/tree/master/springboot-thymeleaf-layout-demo
https://gitee.com/hylun/SpringWeb/tree/master/springboot-thymeleaf-layout-demo

欢迎围观!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring Boot是一个开源的Java开发框架,用于快速构建基于Spring的应用程序。Thymeleaf是一个Java的服务器端模板引擎,可以与Spring Boot框架很好地集成。 要实现HTML页面之间的跳转,可以使用Thymeleaf的语法结合Spring Boot的控制器来完成。 首先,需要在pom.xml文件中添加Thymeleaf的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 接下来,在Spring Boot的控制器中添加一个处理请求的方法,该方法返回要跳转的HTML页面的名称: ```java @Controller public class MyController { @RequestMapping("/hello") public String hello() { return "hello"; // 这里返回的是要跳转的HTML页面的名称,不需要后缀名 } } ``` 然后,在resources/templates目录下创建名为hello.html的HTML页面,用于展示hello页面的内容: ```html <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Hello</title> </head> <body> <h1>Hello, Thymeleaf!</h1> </body> </html> ``` 最后,启动Spring Boot应用程序,在浏览器中访问http://localhost:8080/hello,即可看到跳转到hello.html页面,并显示"Hello, Thymeleaf!"的信息。 以上就是使用Spring Boot和Thymeleaf实现HTML页面跳转的简单示例。通过Thymeleaf的语法和Spring Boot的控制器,我们可以方便地实现页面之间的跳转和数据的渲染。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值