SpringBoot2.x 集成 Thymeleaf的详细教程

SpringBoot2.x 集成 Thymeleaf的详细教程

Thymeleaf是一个Java的模板引擎,能够在客户端和服务端运行。它被广泛应用于Spring框架的Web开发。下面我们将介绍SpringBoot2.x集成Thymeleaf的详细教程。

步骤一:添加Starter依赖

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

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

步骤二:创建模板文件

在 src/main/resources/templates 目录下创建hello.html模板文件,内容如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello Thymeleaf</title>
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'"></p>
</body>
</html>

步骤三:创建Controller类

在src/main/java目录下创建HelloController类,代码如下:

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("name", "Thymeleaf");
        return "hello";
    }
}

步骤四:启动应用程序

编译并启动应用程序。在浏览器中输入http://localhost:8080/hello,应该会看到页面上输出了“Hello, Thymeleaf!”。

示例一:使用Thymeleaf渲染表格

以下示例演示如何使用Thymeleaf渲染一个简单的表格。在 src/main/resources/templates目录下创建 table.html文件,内容如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Table Example</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="person : ${people}">
                <td th:text="${person.name}"></td>
                <td th:text="${person.age}"></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

更新HelloController类以使用新table.html模板文件:

@Controller
public class HelloController {

    @GetMapping("/table")
    public String table(Model model) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("John", 32));
        people.add(new Person("Mary", 25));
        people.add(new Person("Tom", 47));
        model.addAttribute("people", people);
        return "table";
    }

    private static class Person {
        private String name;
        private int age;

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
}

在浏览器中输入http://localhost:8080/table,应该会看到一个表格,其中包含前面添加的三个人员的姓名和年龄。

示例二:使用Thymeleaf渲染下拉菜单

以下示例演示如何使用Thymeleaf渲染一个下拉菜单。在 src/main/resources/templates目录下创建 dropdown.html 文件,内容如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Dropdown Example</title>
</head>
<body>
    <select th:field="*{language}">
        <option value="Java">Java</option>
        <option value="C#">C#</option>
        <option value="Python">Python</option>
        <option value="JavaScript">JavaScript</option>
    </select>
</body>
</html>

更新HelloController类以使用新dropdown.html模板文件:

@Controller
public class HelloController {

    @GetMapping("/dropdown")
    public String dropdown(Model model) {
        model.addAttribute("formObject", new FormObject());
        return "dropdown";
    }

    @PostMapping("/dropdown")
    public String submit(@ModelAttribute("formObject") FormObject formObject) {
        return "redirect:/dropdown";
    }

    private static class FormObject {
        private String language;

        public String getLanguage() {
            return language;
        }

        public void setLanguage(String language) {
            this.language = language;
        }
    }
}

在浏览器中输入http://localhost:8080/dropdown,应该会看到一个下拉菜单,其中包含四个语言选项。当选择并提交某个选项时,下拉菜单会保留用户的选择。

至此,SpringBoot2.x集成Thymeleaf的详细教程结束。预祝各位读者在使用中取得圆满的成功。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot2.x 集成 Thymeleaf的详细教程 - Python技术站

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

相关文章

  • 设置一个div层的最小宽度或最小高度

    设置一个div层的最小宽度或最小高度,可以用CSS中的min-width和min-height属性。这两个属性可以控制元素的最小宽度和最小高度值。 下面是完整攻略: 步骤一:选择元素 首先,需要选择需要设置最小宽度或最小高度的元素。可以使用CSS选择器来选择元素,例如: div { min-width: 200px; } 上面的代码会选择所有的<div…

    css 2023年6月10日
    00
  • HTML5边玩边学(2)基础绘图实现方法

    HTML5是一种新的标记语言,它允许用户通过绘图和动画等功能来丰富网页的内容。本文将详细介绍HTML5绘图的基础实现方法和示例操作。 HTML5基础绘图实现方法 HTML5使用Canvas元素来完成基础的绘图操作。Canvas是一个HTML5标签,用于在网页上绘制图像。使用Canvas元素要按照以下步骤: 步骤一:添加canvas元素到网页 在HTML中添加…

    css 2023年6月10日
    00
  • 全面了解行内元素与块级元素的区别

    全面了解行内元素与块级元素的区别 一、概念解释 在 HTML 中,元素分为两种类型:块级元素和行内元素。块级元素会在页面中生成一个独立的区域,而行内元素则是一个可内嵌于块级元素中的元素。通俗点说,块级元素就像是盒子,而行内元素就像放在盒子里的小东西。 二、区别 1. 渲染方式不同 块级元素会在页面中单独占一行,相邻的块级元素之间会有间隔。例如: <di…

    css 2023年6月9日
    00
  • Bootstrap 网格系统布局详解

    Bootstrap是目前最受欢迎的前端框架之一,它为网站开发提供了许多样式和功能。本文主要介绍Bootstrap网格系统布局,帮助您在设计网站时更好地使用Bootstrap网格系统。 什么是Bootstrap网格系统? Bootstrap网格系统是一个响应式的、基于列和行的布局系统。Bootstrap将浏览器分为12个等宽的列,可以轻松地将行分为任意数量的列…

    css 2023年6月11日
    00
  • CSS 设定文本尺寸的属性

    CSS中有多个属性可以用来设置文本尺寸,包括font-size、line-height、letter-spacing和word-spacing等。本攻略将介绍这些属性的用法和示例。 font-size属性 font-size属性用于设置文本的字号大小。可以使用绝对单位(如px、pt、em等)或相对单位(如%、rem等)来指定字号大小。以下是font-size…

    css 2023年5月18日
    00
  • CSS网页布局开发时的常见问题小结

    CSS网页布局开发时的常见问题小结 在CSS网页布局开发过程中,有一些常见问题,如果不及时处理将会影响到前端页面的体验和展示。以下是一些常见问题及其解决方法。 问题1:盒子模型样式解析 在网页布局中,盒子模型是一种基础的样式模型,掌握盒子模型样式的设置和解析对于网页布局的开发工作非常重要。常见的盒子模型有两种:content-box和border-box。其…

    css 2023年6月9日
    00
  • 一文详解如何在Vue3中使用jsx/tsx

    一文详解如何在Vue3中使用jsx/tsx 在Vue 3 中,支持使用 JSX 和 TSX 语法来开发 Vue 组件。本文将详细讲解如何在 Vue 3 中使用 JSX 和 TSX 语法来编写组件。 注意:在使用开发环境前,请确保你已经正确安装好了 Vue 3 和相关依赖。 安装依赖 使用 JSX 和 TSX 语法来开发 Vue 组件,我们需要安装以下依赖: …

    css 2023年6月10日
    00
  • CSS3 透明色 RGBA使用介绍

    CSS3 透明色 RGBA使用介绍 CSS3中的透明色可以使用RGBA值来表示,其中R、G、B表示红、绿、蓝三原色的值,A表示透明度的值。RGBA值的取值范围为0~255,透明度的取值范围为0~1。本攻略将详细讲解CSS3透明色RGBA的使用介绍,包括基本概念、属性介绍、注意事项和示例说明。 1. 基本概念 CSS3中的透明色可以使用RGBA值来表示,其中R…

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