thymeleaf模板引擎

ops/2025/2/6 10:53:43/

一、什么是thymeleaf模板引擎

模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。 它可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式,可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。

二、什么是thymeleaf模板引擎

java"><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency><dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId><version>1.9.22</version>
</dependency>

三、配置Thymeleaf

java">spring:thymeleaf:cache: false # 关闭页面缓存encoding: UTF-8 # 模板编码prefix: classpath:/templates/  # 页面映射路径suffix: .html # 试图后的后缀mode: HTML5 # 模板模式

四、访问页面

controller层

java">import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class IndexController {@RequestMapping("/")public String index(){return "index";}}

五、访问静态资源

在配置文件当中配置 .yml

java">spring:mvc:static-path-pattern: /static/**

目录格式

引用格式

java"><link rel="stylesheet" href="../static/css/mystyle.css"/>

我们在进行正常访问的时候会报一下的错误,这是因为我们需要给网页标题前添加一个小图标favicon.ico

我们需要加上这一句话在页面上

java"><link rel="shortcut icon" href="../resources/favicon.ico" th:href="@{/static/favicon.ico}"/>

六、thymeleaf使用模板

java代码中写入如下代码:

java">@RequestMapping("/hello")
public String hello(Model model){model.addAttribute("msg","Hello");return "hello";
}

html页面中写入如下代码:

java"><!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<body>
<h1>Hello</h1>
<div th:text="${msg}"></div>
</body>
</html>

七、thymeleaf实例演示

​①、th:text :设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7

②、th:value:设置当前元素的value值,类似修改指定属性的还有th:srcth:href。优先级不高:order=6

java">@RequestMapping("thymeleaf")
public String thymeleaf(ModelMap map){map.put("thText","th:text设置文本内容 <b>加粗</b>");map.put("thUText","th:utext 设置文本内容 <b>加粗</b>");map.put("thValue","thValue 设置当前元素的value值");return "thymeleaf";
}
java"><p th:text="${thText}"></p>
<p th:utext="${thUText}"></p>
<input type="text" th:value="${thValue}">

​ ③、th:each:遍历循环元素,和th:text或th:value一起使用。注意该属性修饰的标签位置,详细往后看。优先级很高:order=2

java">@RequestMapping("/thymeleaf")
public String  listUser(Model model) {List<Person> userList = new ArrayList<Person>();for (int i = 0; i <10; i++) {userList.add(new Person(i,"张三"+i,20+i,'男'));}model.addAttribute("users", userList);return "thymeleaf";
}
java"><div><ul><li  th:each="user:${users}"><span th:text="${user.id}"></span>-<span th:text="${user.name}"></span>-<span th:text="${user.age}"></span>-<span th:text="${user.sex}"></span></li></ul>
</div>

​ ④、th:if:条件判断,类似的还有th:unlessth:switchth:case。优先级较高:order=3

判断表达式:

java">gt:great than(大于)>
ge:great equal(大于等于)>=
eq:equal(等于)==
lt:less than(小于)<
le:less equal(小于等于)<=
ne:not equal(不等于)!=
java"><div th:if=" ${userCarSize} eq '3'"><div>你好</div>
</div>
java">@RequestMapping("/thymeleaf")
public String  listUser(Model model) {model.addAttribute("size", 3);return "thymeleaf";
}

http://www.ppmy.cn/ops/156129.html

相关文章

响应式编程_03响应式编程在Netflix Hystrix 、Spring Cloud Gateway、Spring WebFlux中的应用

文章目录 概述响应式编程在主流开源框架中的应用Netflix Hystrix 中的滑动窗口 &#xff08;基于RxJava框架&#xff09;HystrixCircuitBreaker 如何动态获取系统运行时的各项数据如何实现滑动窗口&#xff1f; 小结Spring Cloud Gateway 中的过滤器Filter (基于Project Reacto…

Python利用VideoCapture和FFmpeg读取多个rtsp流性能的比较

最近一个项目&#xff0c;要用python读取30个海康摄像头的rtsp流&#xff0c;一开始直接用cv2.VideoCapture(video_path)&#xff0c;结果运行一段时间后发现读出来的frame经常出现花屏的现象。所以通过两种方式对程序进行了修改。 1、我先是通过cap.set(cv2.CAP_PROP_BUFFERS…

Ollama AI 开发助手完全指南:从入门到实践

本文将详细介绍如何使用 Ollama AI 开发助手来提升开发效率,包括环境搭建、模型选择、最佳实践等全方位内容。 © ivwdcwso (ID: u012172506) 目录 基础环境配置模型选择与使用开发工具集成实践应用场景性能优化与注意事项最佳实践总结一、基础环境配置 1.1 系统要求 在…

基于AnolisOS8.6+Kubespray2.23部署Kubernetes-v1.27

测试环境 Virtual Box&#xff0c;AnolisOS-8.6-x86_64-minimal.iso&#xff0c;4 vCPU, 8G RAM, 50 vDisk。最小化安装。需联网。 系统环境 关闭防火墙 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld selinux关闭 cat /etc/selinux/c…

LeetCode - #197 Swift 实现找出温度更高的日期

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

关于大模型 AGI 应知应会_生在AI发展的时代

在 AI 时代&#xff0c;大模型和通用人工智能&#xff08;AGI&#xff09;正在深刻改变我们的生活和工作方式。以下是一些关于大模型和 AGI 的关键知识点&#xff0c;帮助我们更好地理解这一技术浪潮。 一、大模型的核心概念与特点 &#xff08;一&#xff09;什么是大模型 …

需求分析应该从哪些方面来着手做?

需求分析一般可从以下几个方面着手&#xff1a; 业务需求方面 - 与相关方沟通&#xff1a;与业务部门、客户等进行深入交流&#xff0c;通过访谈、问卷调查、会议讨论等方式&#xff0c;明确他们对项目的期望、目标和整体业务需求&#xff0c;了解项目要解决的业务问题及达成的…

Vue 中如何嵌入可浮动的第三方网页窗口(附Demo)

目录 前言1. 思路Demo2. 实战Demo 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 1. 思路Demo 以下Demo提供思路参考&#xff0c;需要结合实际自身应用代码 下述URL的链接使用百度替代&#xff01; 方式 1…