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日

相关文章

  • Dreamweaver注释怎么设置快捷键?

    设置Dreamweaver注释的快捷键可以提高工作效率,以下是详细攻略: 打开Dreamweaver软件并打开一个HTML文件。 在菜单栏中选择“编辑”>“键盘快捷键”。 在“命令”下拉菜单中选择“插入注释”。 在“设置快捷方式”框中按下你想要设置的快捷键组合,例如“Ctrl+Shift+/”。 单击“应用”和“确定”按钮。 现在,你就可以使用设置好的…

    css 2023年6月9日
    00
  • CSS单标签实现复杂的棋盘布局

    CSS单标签实现复杂的棋盘布局,可以使用:before和:after伪元素来实现。 关键CSS样式如下: /* 容器样式 */ .container { display: flex; flex-wrap: wrap; width: 540px; height: 540px; margin: 0 auto; } /* 单格样式 */ .container:af…

    css 2023年6月10日
    00
  • div+css制作圆角矩形的原理示例解读

    下面是关于“div+css制作圆角矩形的原理示例解读”的完整攻略: 1. 理解圆角矩形的概念 圆角矩形即是在矩形的四个角上实现圆弧效果的一种设计。在 web 开发中,我们可以利用 CSS 技术来实现圆角矩形。 2. 使用CSS的border-radius属性 CSS 中有专门的属性用来实现圆角矩形,那就是 border-radius。border-radiu…

    css 2023年6月10日
    00
  • CSS中三角形的绘制与巧妙应用实例详解

    在CSS中,可以使用伪元素和border属性来绘制三角形,这是一种非常有用的技巧,可以用于创建各种形状和图案。以下是CSS中三角形的绘制与巧妙应用实例详解: 绘制三角形 1. 使用border属性绘制三角形 可以使用CSS的border属性来绘制三角形。以下是一个简单的示例: .triangle { width: 0; height: 0; border-t…

    css 2023年5月18日
    00
  • div清除浮动css样式代码分享(4种方法)

    这里为大家介绍一下“div清除浮动CSS样式代码分享(4种方法)”。 什么是浮动 在css中,浮动是指让一个元素脱离标准流,靠近另一个元素显示的一种布局方式。浮动可以使元素分布在页面上,让页面更加美观。 什么是浮动清除 当一个元素浮动时,它的父元素不会自适应其高度,导致父元素的高度为0,这就是浮动导致的布局问题。 浮动清除就是一种解决浮动导致的布局问题的方式…

    css 2023年6月9日
    00
  • 面试必问:圣杯布局和双飞翼布局的区别

    关于“面试必问:圣杯布局和双飞翼布局的区别”的完整攻略,我来详细讲解一下。 1. 什么是圣杯布局和双飞翼布局 圣杯布局和双飞翼布局都是一种流行的三栏布局方式。它们的共同点是:都有一个中心的主体部分、一个左侧辅助栏和一个右侧辅助栏,并且主体部分宽度固定,而辅助栏的宽度可以根据需要而自适应调整。 具体来说: 圣杯布局:在HTML结构中,主体部分的标签最先出现,其…

    css 2023年6月9日
    00
  • 深入理解css布局之定位与浮动

    深入理解css布局之定位与浮动是实现网站布局的重要技能之一,本文将从以下几个方面展开介绍: 什么是定位与浮动? 定位(Position)和浮动(Float)都是 css 中常用的布局方式。 定位是指使用 position 属性来控制元素的位置。常见的属性值为 relative(相对定位)、absolute(绝对定位)、fixed(固定定位)等。 浮动是指使用…

    css 2023年6月9日
    00
  • CSS3的新特性介绍

    CSS3的新特性介绍 CSS3是CSS标准中的最新版本,它带来了许多新的特性和改进,以下是CSS3的一些新特性介绍: 选择器 属性选择器 在CSS3中,新的属性选择器被引入。属性选择器可以通过元素的属性选择元素,以便更好地控制样式。新的属性选择器包括: 属性值选择器:通过元素属性的值选择元素。例如,选择所有href属性值以”.pdf”结尾的超链接: cssa…

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