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日

相关文章

  • JavaScript修改css样式style动态改变元素样式

    下面是关于JavaScript修改CSS样式的攻略: 1. 通过修改style属性 最简单的修改元素样式的方式就是使用style属性。可以通过document对象获取元素,然后通过设置其style属性来改变样式: // 获取元素 var element = document.getElementById(‘myElement’); // 修改元素样式 ele…

    css 2023年6月10日
    00
  • Dreamweaver cc2018主题颜色怎么设置?

    Dreamweaver CC 2018是一款强大的网页设计工具,它的主题颜色设置可以帮助用户自定义软件的界面颜色,提高用户体验。下面是完整的攻略: 步骤一:打开Dreamweaver设置页面 在Dreamweaver主界面中,单击菜单栏上的“编辑” -> “首选项” -> “界面”。 步骤二:选择颜色方案 在设置页面中,有多个可供选择的颜色方案,…

    css 2023年6月9日
    00
  • CSS 常用中文字体 Unicode 编码表

    以下是详细讲解 “CSS 常用中文字体 Unicode 编码表”的完整攻略: 什么是 Unicode 编码 Unicode是一个字符集,规定了每个字符对应的唯一编号,它包含了全世界所有的字符,不仅仅包括了中西文字符,还包括了各种符号、形状以及图形等各种元素。 Unicode 主要是通过四个十六进制数来表示每个字符,例如汉字“好”的 Unicode 编码是U+…

    css 2023年6月9日
    00
  • js实现消灭星星(web简易版)

    让我来详细讲解JS实现消灭星星(web简易版)的攻略。 简介 消灭星星是一款非常经典的益智游戏,它将星星消除为游戏目标。在这个web简易版中,我们需要使用JavaScript语言来实现星星的判断和消除。 技术实现 我们需要使用以下技术来实现这个游戏: 1. HTML5和CSS3 我们使用HTML5和CSS3来创建游戏界面和样式,比如星星的样式、背景图、游戏面…

    css 2023年6月10日
    00
  • 详解Vue中CSS样式穿透问题

    详解Vue中CSS样式穿透问题 在Vue中,我们可以使用组件化开发,将页面拆分成各个独立的组件,这样可以使得代码更加简洁和易于维护。然而,在组件化开发中,由于组件之间相互独立,所以我们在编写CSS时可能会遇到一个问题,即:CSS样式穿透问题。下面将详细讲解这个问题,并提供两个示例说明。 什么是CSS样式穿透问题 所谓CSS样式穿透问题,是指在Vue中,父组件…

    css 2023年6月9日
    00
  • 控制Flex子元素在主轴上的比例的方法

    控制 Flex 子元素在主轴上的比例通常使用 flex 属性来实现。该属性的值必须为一个非负整数或一个比例值(即带有 fr 单位的数值),表示当前子元素在主轴上所占据的空间比例。下面是一些示例说明: 使用 flex 属性设置子元素占比 假设有一组 Flex 容器内有三个子元素需要均分主轴上的空间,可以使用 flex: 1 来将每个子元素都设置为等分主轴上的空…

    css 2023年6月10日
    00
  • 用js实现的DIV+CSS编辑器代码

    使用js实现的DIV+CSS编辑器可以帮助前端开发人员快速创建和修改网页的样式。以下是实现DIV+CSS编辑器代码的完整攻略。 HTML布局 首先,我们需要在HTML页面中定义一个容器DIV,用于显示编辑器。在这个DIV中创建两个子元素,分别是编辑区和预览区,如下所示: <div id="container"> <div…

    css 2023年6月10日
    00
  • 通过css加载远程字体示例代码

    加载远程字体可以通过CSS中的 @font-face 标签和 src 属性来实现。 CSS中的@font-face标签 @font-face 是一个CSS规则,它允许你定义自己的字体(包括字体的名称、字体的权重、样式、和所需的字体文件),并在需要的地方使用它。 语法格式如下: @font-face { font-family: myFont; src: ur…

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