springboot项目开发,使用thymeleaf前端框架的简单案例

springboot项目开发,使用thymeleaf前端框架的简单案例!我们看一下,如何在springboot项目里面简单的构建一个thymeleaf的前端页面。来完成动态数据的渲染效果。


第一步,我们在上一小节,已经提前预下载了对应的组件了。

如图,springboot的强大之处就在于,它有一套完整的版本依赖关系。管理很方便。插件彼此之间的依赖,不需要我们再去思考了。它自己会下载所需的依赖包。

在依赖项里面可以看见这个选项,就是下载成功了。


第二步,我们设计一下自己的前端页面的存档路径。

如图,我们在templates文件夹下面新建了一个index的文件夹,里面新建立一个index.html文件。

复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
<div>
    <p>
        <span>用户名字:张三</span>
        <span>用户年龄:21</span>
        <span>用户爱好:骑车,爬山,健身</span>
    </p>

</div>
</body>
</html>

暂时是静态的内容。等会我们会把它改成动态熏染的。


第三步,我们配置一下,thymeleaf基础的参数信息。告诉我们的springboot去哪里渲染我们的内容。

复制代码
server.port= 8080

#Thymeleaf 基础配置参数
spring.thymeleaf.cache = false
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.suffix=.html
spring.thymeleaf.prefix=classpath:/templates/

如上内容,这个就是基础的。application.properties里面的thymeleaf参数配置。我们选择了不开启缓存。


第四步,我们提前准备好一个user实体类,存储我们的动态数据,

复制代码
package com.example.demo.bean;

import java.util.ArrayList;

public class User {
    private String id;
    private String name;
    private String age;
    private ArrayList<String> hobby;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    public ArrayList<String> getHobby() {
        return hobby;
    }

    public void setHobby(ArrayList<String> hobby) {
        this.hobby = hobby;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", hobby=" + hobby +
                '}';
    }
}

第五步,我们新增了一个UserController控制器。还是一个简单的get请求路径。

测试一下。我们的内容能不能渲染到前端页面内。

复制代码
package com.example.demo.controller;

import com.example.demo.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/index")
    public String  index(ModelMap model){
        User user = new User();
        user.setId("201212001");
        user.setAge("24");
        user.setName("老刘");
        ArrayList<String> hobbyList = new ArrayList();
        hobbyList.add("瑜伽");
        hobbyList.add("骑马");
        hobbyList.add("看电影");
        user.setHobby(hobbyList);
        model.addAttribute("user",user);
        //输入对应的前端页面的名字index
        return "/index/index";
    }
}

借助于官方提供的ui.modelMap插件可以完成数据的绑定。在前端页面就可以拿到这个数据来渲染了。


复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
<div>
    <p>
        <span th:text="${user.name}"></span>
        <span th:text="${user.age}"></span>
        <span th:text="${user.hobby}"></span>
    </p>

</div>
</body>
</html>

如图,我们已经采取了动态渲染的方式。

看看能不能正常获取到数据。


如图,确实是拿到了数据信息。至此为止,一个简单的thymeleaf前端框架的使用案例就完成了。

后续我们会分享,如何让springboot配合mysql数据库渲染数据。

相关推荐
摇滚侠2 分钟前
《SpringBoot 3:入门与应用实战》第 6 章 Spring Boot 最佳实践 阅读笔记 12
android·spring boot·笔记
掘金者阿豪8 分钟前
你的公网 IP 是专线还是动态变化的?一文讲透动态 IP 与固定 IP 的那些事
前端·后端
超超不吵吵8 分钟前
Java AI转型实战(八):RAG完整链路实战
后端
码匠许师傅8 分钟前
【C++ 面试真题】聊聊 C++ 的类型特征( type_traits)
java·c++·面试
java1234_小锋10 分钟前
Spring框架的创始人开发了一个Java AI智能体框架
java·人工智能·spring
夏天拐跑了西瓜12 分钟前
Eureka注册中心——单机与高可用集群搭建
java·spring cloud·微服务·eureka
Caster_Z14 分钟前
IntelliJ IDEA 安装 Qoder CN (Formerly Lingma)
java·ide·intellij-idea
前端炒粉21 分钟前
fetch+readablestream(Streamable)流式输出
java·服务器·前端
珍珠先生29 分钟前
第18章 泛型入门
java
大厂码农老A29 分钟前
汤森路透的座上宾?Qwen3.5-397B-A17B到底有什么本事?
前端·人工智能·后端