SpringBoot基础系列学习(四):Thymeleaf模板

文章目录

一丶什么是模板引擎

模板引擎是一种将数据和模板结合起来生成最终结果的工具,它将一个模板和一个数据对象作为输入,通过模板解析和渲染生成最终的结果。通俗地说,模板引擎就是用来生成 HTML 等标记的工具。
比如

我想买裙子,这时候我会打开某宝,直接在搜索框输入"裙子",就会出现跟裙子相关的一系列商品,各种颜色,各种样式。那我们来想一下,这么多商品的各种信息是直接全部写死在页面上的嘛?那我们每次查找的商品都不一样,需要的内存就太大了

很显然,并不是,所以这里就体现了我们模板引擎的作用,它可以根据从数据库中实时提取出来的数据对html页面实时的渲染,这,就是模板引擎。

二丶Thymeleaf 介绍

Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 。

特点

  • 支持无网络环境下运行,由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。所以它可以让前端小姐姐在浏览器中查看页面的静态效果,又可以让程序员小哥哥在服务端查看带数据的动态页面效果。
  • 开箱即用,为Spring提供方言,可直接套用模板实现JSTL、 OGNL表达式效果,避免每天因套用模板而修改JSTL、 OGNL标签的困扰。同时开发人员可以扩展自定义的方言。
  • SpringBoot官方推荐模板,提供了可选集成模块(spring-boot-starter-thymeleaf),可以快速的实现表单绑定、属性编辑器、国际化等功能。

三丶使用

引入依赖

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

代码

java 复制代码
  import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;


/**
 * @author Administrator
 */
@Controller
public class ThymeleafController {

    @GetMapping("/index")
    public ModelAndView index() {
        ModelAndView view = new ModelAndView();
        view.setViewName("index");
        // 设置属性
        view.addObject("title", "我的第一个WEB页面");
        view.addObject("name","白菜治");
        view.addObject("age","33");
        return view;
    }
}
    

html

java 复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title th:text="${title}">Thymeleaf语法练习</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name} + '!'"></h1>
<p th:text="'今年, ' + ${age} + '!'"></p>
</body>
</html>

页面响应

相关推荐
唐青枫3 分钟前
Java Undertow 实战指南:从轻量 Web Server 到 Spring Boot 嵌入式容器
java
程序员爱钓鱼4 分钟前
GOPATH 与 Go Modules:Go 项目依赖管理的演变
后端·go
牛奔8 小时前
Go 如何打印调试深层或嵌套的结构体
开发语言·后端·golang
红烧大青虫8 小时前
HarmonyOS应用开发实战:小事记 - 数据迁移策略:RDB 表结构变更的版本号管理与 onUpgrade 回调
后端·华为·harmonyos·鸿蒙系统
geovindu9 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
阳光是sunny10 小时前
LangGraph实战教程:defer延迟节点——让收尾工作自动排到最后
前端·人工智能·后端
前端工作日常10 小时前
我学习到的Java中domain和dto区别
java·后端
kite012110 小时前
Go语言Map深度解析与最佳实践
开发语言·后端·golang
阳光是sunny10 小时前
LangGraph实战教程:控制流详解
前端·人工智能·后端
码农学院10 小时前
基于Spring Boot的跨境电商多语言订单管理系统架构设计
java·大数据·spring boot