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 小时前
【任务调度:数据库锁 + 线程池实战】3、 从 SELECT 到 UPDATE:深入理解 SKIP LOCKED 的锁机制与隔离级别
java·分布式·科技·spring·架构
编程小白gogogo3 小时前
苍穹外卖图片不显示解决教程
java·spring boot
舟舟亢亢4 小时前
算法总结——二叉树【hot100】(上)
java·开发语言·算法
百锦再4 小时前
Java中的char、String、StringBuilder与StringBuffer 深度详解
java·开发语言·python·struts·kafka·tomcat·maven
上进小菜猪4 小时前
基于 YOLOv8 的水体污染目标检测系统 [目标检测完整源码]
后端
努力努力再努力wz5 小时前
【Linux网络系列】:TCP 的秩序与策略:揭秘传输层如何从不可靠的网络中构建绝对可靠的通信信道
java·linux·开发语言·数据结构·c++·python·算法
yy.y--6 小时前
Java数组逆序读写文件实战
java·开发语言
BD_Marathon7 小时前
IDEA创建多级包时显示在同一行怎么办
java·ide·intellij-idea
亓才孓7 小时前
【Exception】CONDITIONS EVALUATION REPORT条件评估报告
java·开发语言·mybatis
山岚的运维笔记7 小时前
SQL Server笔记 -- 第72章:隔离级别与锁定
数据库·笔记·后端·sql·microsoft·sqlserver