Spring Boot thymeleaf模板引擎的使用详解

yizhihongxing

Spring Boot Thymeleaf模板引擎的使用详解

Thymeleaf是一个现代的服务器端Java模板引擎,可用于Web和独立环境。与许多传统的Java模板引擎不同,Thymeleaf采用HTML作为标记语言,以提高可读性,并使模板更易于编辑和维护。

本攻略将介绍如何在Spring Boot应用程序中使用Thymeleaf进行模板渲染。

添加依赖

首先,在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

这将导入Spring Boot Thymeleaf模板引擎的所有依赖项。

配置模板引擎

接下来,您需要配置Thymeleaf模板引擎。

application.properties文件中添加以下内容:

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

这将告诉Spring Boot在/templates目录中查找模板文件,并将它们视为HTML文件。如果您想使用不同的前缀和后缀,请将它们替换为您自己的值。

创建HTML文件

现在,我们可以创建我们的HTML文件。在/templates目录下创建一个名为index.html的文件,并将以下内容添加到其中:

<!DOCTYPE html>
<html>
<head>
    <title>Thymeleaf Example</title>
</head>
<body>
    <h1>Hello, Thymeleaf!</h1>
    <p th:text="'The current date and time is ' + ${#dates.format(#dates.createNow(), 'yyyy-MM-dd HH:mm:ss')}"></p>
</body>
</html>

这是一个简单的HTML页面,它包括一个标题和一个段落。在这个段落中,我们使用th:text属性将当前日期和时间显示为文本。

创建Controller

接下来,我们需要创建一个Spring Controller将模板渲染为响应。

src/main/java/com/example/demo目录下创建一个名为DemoController.java的文件,并将以下内容添加到其中:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class DemoController {

    @GetMapping("/")
    public String index(Model model) {
        return "index";
    }

}

这将创建一个名为DemoController的Spring Controller,它将使用@Controller注解标记。

index方法使用@GetMapping注解将其映射到/路径。它还将Model作为参数传递,这使我们能够将数据添加到模板中。

最后,它返回一个名为index的字符串,这实际上是模板文件的名称。Spring将在/templates目录下查找名为index.html的文件,并将其用作响应。

运行应用程序

现在,我们已经准备好运行我们的应用程序了。

使用以下命令启动应用程序:

mvn spring-boot:run

或者,您可以使用您喜欢的其他方法启动应用程序。

打开浏览器并转到http://localhost:8080/。您应该看到一个欢迎页面,上面写着“Hello, Thymeleaf!”以及日期和时间。

示例1:使用Thymeleaf表达式

让我们尝试一些更复杂的内容。修改index.html以包含另一个段落,该段落将显示当前用户的名称。

<!DOCTYPE html>
<html>
<head>
    <title>Thymeleaf Example</title>
</head>
<body>
    <h1>Hello, Thymeleaf!</h1>
    <p th:text="'The current date and time is ' + ${#dates.format(#dates.createNow(), 'yyyy-MM-dd HH:mm:ss')}"></p>
    <p th:text="'Welcome, ' + ${user.name} + '!'"></p>
</body>
</html>

我们添加了一个新的<p>元素,它包含一个th:text属性。这是一个表达式,它将用户对象的名称添加到欢迎消息中。

我们需要在DemoController中添加一个新的方法来处理这个表达式。修改代码如下:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class DemoController {

    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("user", new User("John Doe"));
        return "index";
    }

}

在这个方法中,我们在Model中添加了一个名为user的新对象。这个对象有一个名为name的字段,它包含用户的名称。

现在重新启动应用程序并刷新浏览器。欢迎消息应该包含“Welcome, John Doe!”。

示例2:循环迭代

使用th:each属性可以很容易地在模板中进行循环迭代。让我们尝试修改我们的HTML文件,以便它在列表中显示用户的联系人。

<!DOCTYPE html>
<html>
<head>
    <title>Thymeleaf Example</title>
</head>
<body>
    <h1>Hello, Thymeleaf!</h1>
    <p th:text="'The current date and time is ' + ${#dates.format(#dates.createNow(), 'yyyy-MM-dd HH:mm:ss')}"></p>
    <p th:text="'Welcome, ' + ${user.name} + '!'"></p>
    <ul>
        <li th:each="contact : ${user.contacts}" th:text="${contact}" />
    </ul>
</body>
</html>

我们添加了一个新的<ul>元素,并使用th:each属性在其中迭代用户的联系人。在每个迭代中,我们将其显示为列表项的文本。

我们还需要在DemoController中添加一个新的方法来处理这个表达式。修改代码如下:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Arrays;

@Controller
public class DemoController {

    @GetMapping("/")
    public String index(Model model) {
        User user = new User("John Doe");
        user.setContacts(Arrays.asList("johndoe@example.com", "johndoe@gmail.com"));
        model.addAttribute("user", user);
        return "index";
    }

}

在这个方法中,我们创建了一个新的User对象,并使用setContacts方法设置了该对象的联系人列表。然后我们将user对象添加到Model中。

最后,重新启动应用程序并刷新浏览器。您应该看到一个带有联系人列表的页面。

总结

恭喜!您已经成功地学习了如何在Spring Boot应用程序中使用Thymeleaf模板引擎进行模板渲染。这包括添加依赖项,配置模板引擎,创建HTML文件,创建Spring Controller以及渲染模板。本攻略还包括两个示例,展示了如何使用Thymeleaf表达式和循环迭代。

如果您想了解更多关于Spring Boot和Thymeleaf模板引擎的信息,请参阅官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot thymeleaf模板引擎的使用详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 从Vue转换看Webpack与Vite 代码转换机制差异详解

    下面给您讲解“从Vue转换看Webpack与Vite 代码转换机制差异详解”的完整攻略。 1. 背景介绍 随着前端技术的不断发展,前端框架的应用也越来越广泛。在Vue框架中,我们经常使用Webpack和Vite来进行代码打包和转换,但是他们的代码转换机制有什么区别呢?接下来,我们将分析这个问题。 2. Webpack的代码转换机制 Webpack是一个模块打…

    css 2023年6月9日
    00
  • DIV背景半透明文字不半透明的样式

    当需要在网页上实现背景半透明、且文字不半透明的效果时,一种解决方案是使用CSS3的RGBA色彩模式,将背景色中的alpha值(透明度)调整为小于1的值。 我们可以采用以下步骤来实现这个效果: 1. 创建HTML元素 首先需要在HTML中创建一个元素,并为其添加唯一的class或id属性,用于在CSS中引用。例如,我们创建了一个div元素,其class属性为“…

    css 2023年6月11日
    00
  • 在ASP.NET 2.0中操作数据之十五:在GridView的页脚中显示统计信息

    这里是在ASP.NET 2.0中操作数据之十五:在GridView的页脚中显示统计信息的完整攻略。 1. 添加GridView控件 首先,我们需要在页面上添加GridView控件,并绑定数据源。可以在ASPX页面上直接添加控件,也可以通过代码生成。 <asp:GridView ID="GridView1" runat="s…

    css 2023年6月10日
    00
  • Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果

    下面是详细讲解“Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果”的完整攻略: 准备工作 首先,你需要在HTML文件中引入Bootstrap库: <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3…

    css 2023年6月11日
    00
  • 原生js仿浏览器滚动条效果

    我们来详细讲解在原生 JavaScript 中如何实现仿浏览器滚动条效果。 1. 设计实现思路 在实现仿浏览器滚动条的效果时,需要考虑以下几个方面: 创建滚动条:根据需要创建一个滚动条,并设置它的高度和样式。 监听内容滚动:监听页面内容的滚动事件。 计算滑块位置:根据内容滚动的位置和内容高度,计算出滑块的位置。 移动滑块:根据计算得出的滑块位置,改变滑块的样…

    css 2023年6月10日
    00
  • inline-block带来的元素间距问题解决

    inline-block是CSS中常用的布局方式之一,它可以在一行内将多个元素显示,但是如果使用不当,会出现元素间多余的空白间距(margin)问题。以下是使用inline-block布局的元素间距问题解决的攻略: 1. 去除元素间的空白间距 由于每个inline-block元素之间的空格,换行符以及缩进都会被认为是一个字符,所以会在inline-block…

    css 2023年6月9日
    00
  • 全网最详细的vscode基础教程

    全网最详细的vscode基础教程攻略 介绍 Visual Studio Code(VS Code)是一款流行的开源IDE,它支持多种编程语言,包括JavaScript、Python、C++等。本教程旨在为初学者提供全方位的VS Code基础教程。 安装VS Code 首先,我们需要下载和安装VS Code。如果你还没有安装,你可以前往VS Code官网(ht…

    css 2023年6月10日
    00
  • CSS3 渐变(Gradients)之CSS3 径向渐变

    下面是关于“CSS3 渐变(Gradients)之CSS3 径向渐变”的完整讲解。 简介 CSS径向渐变是CSS3引入的一种新特性,它可以用来创建从一个点向外扩散的颜色渐变效果。径向渐变可以使用在HTML元素的背景上,可以水平、垂直或者是斜向绘制,也可以从多个颜色之间产生平滑过渡效果。 在CSS3径向渐变中,我们能设置两个以上的颜色和它们之间的位置,让它们产…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部