SpringBoot整合模板引擎Thymeleaf(1)

news/2024/11/24 13:10:17/

版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

Thymeleaf概述

在这里插入图片描述

Thymeleaf是一种用于Web和独立环境的现代服务器端的Java模板引擎,主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示。Thymeleaf可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS,纯文本。在Spring Boot开发中推荐使用Thymeleaf实现视图页面。

Thymeleaf官网

https://www.thymeleaf.org/

Thymeleaf依赖

在使用Thymeleaf时请在pom.xml添加如下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

除此之外,也可以在创建Spring Boot项目时勾选Thymeleaf依赖使得IDEA自动添加Thymeleaf相关依赖。
在这里插入图片描述

Thymeleaf项目结构

Spring Boot项目使用Thymeleaf时,项目结构如下。
在这里插入图片描述

static

static文件夹用于存放静态资源,例如:css文件、js文件。

templates

templates用于存放使用了Thymeleaf的html文件。

Thymeleaf配置

在使用Thymeleaf时请在application.properties添加如下配置。

要点概述:

  • 1、关闭Thymeleaf缓存
  • 2、指定Thymeleaf模板页面存放路径;例如:/resources/templates/中
  • 3、指定Thymeleaf模板编码方式;例如:UTF-8
  • 4、指定Thymeleaf模板的后缀;例如:.html
  • 5、指定Thymeleaf模板的模式;例如:HTML5
# 缓存设置。开发中设置为false,线上时设置为true
spring.thymeleaf.cache=false
# 模板的编码方式
spring.thymeleaf.encoding=UTF-8
# 模式
spring.thymeleaf.mode=HTML5
# 模板页面存放路径
spring.thymeleat.prefix=classpath:/resources/templates/
# 模板页面名称后缀
spring.thymeleaf.suffix=.html

Thymeleaf命名空间

在使用Thymeleaf时请在html文件头部添加如下配置引入Thymeleaf命名空间。

<html lang="en" xmlns:th="http://www.thymeleaf.org">

Thymeleaf使用方式

一般情况下,我们不会直接访问使用了Thymeleaf的html文件。而是,先访问Controller;再由Controller跳转至html文件。

Thymeleaf入门案例

在此,以案例形式详细介绍Thymeleaf配置的使用。

项目结构

要点概述:

  • 1、static文件夹用于存放静态资源,例如:css文件、js文件。
  • 2、templates用于存放使用了Thymeleaf的html文件。
    在这里插入图片描述

依赖文件

请在pom.xml文件中添加如下依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.cn</groupId><artifactId>SpringBootThymeleaf00</artifactId><version>0.0.1-SNAPSHOT</version><name>SpringBootThymeleaf00</name><description>SpringBootThymeleaf00</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

配置文件

请在application.properties文件添加以下配置。

# 缓存设置。开发中设置为false,线上时设置为true
spring.thymeleaf.cache=false
# 模板的编码方式
spring.thymeleaf.encoding=UTF-8
# 模式
spring.thymeleaf.mode=HTML5
# 模板页面存放路径
spring.thymeleat.prefix=classpath:/resources/templates/
# 模板页面名称后缀
spring.thymeleaf.suffix=.html

后台程序

请在controller中创建TestController。

要点概述:

  • 1、在控制器上使用@Controller ,而不是@RestController
  • 2、在Request域即HttpServletRequest中保存数据
  • 3、利用return跳转至templates下的index.html页面
package com.cn.springbootthymeleaf00.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
/*** 本文作者:谷哥的小弟* 博客地址:http://blog.csdn.net/lfdfhl*/
@Controller
@RequestMapping("/MyController")
public class TestController {@RequestMapping("/test1")public String test1(HttpServletRequest httpServletRequest){String authorName = "谷哥的小弟";// 将数据保存至HttpServletRequesthttpServletRequest.setAttribute("name",authorName);// 跳转至index.htmlreturn "index";}
}

前端页面

在templates下创建index.html页面。

要点概述:

  • 1、引入Thymeleaf命名空间
  • 2、利用< span th:text=“${属性名}”></ span> 获取从Controller传递至前端的数据
<!DOCTYPE html>
<!--  引入Thymeleaf命名空间 -->
<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Hello Thymeleaf</title></head><body><h2 style="color: red;">本文作者:谷哥的小弟</h2><h2 style="color: red;">博客地址:http://blog.csdn.net/lfdfhl</h2><br/>获取从Controller传递至前端的数据:<span th:text="${name}"></span></body>
</html>

SpringBootThymeleaf00Application

package com.cn.springbootthymeleaf00;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*** 本文作者:谷哥的小弟* 博客地址:http://blog.csdn.net/lfdfhl*/
@SpringBootApplication
public class SpringBootThymeleaf00Application {public static void main(String[] args) {SpringApplication.run(SpringBootThymeleaf00Application.class, args);}}

测试

测试地址:http://localhost:8080/MyController/test1

在这里插入图片描述


http://www.ppmy.cn/news/487828.html

相关文章

惠普gk100好不好_机械键盘惠普GK100感受(小白)

首先嘞&#xff0c;我是小白&#xff0c;今天正式收到惠普GK100这款机械键盘。就想写点东西分享一下嘛&#xff0c;班门弄斧&#xff0c;还请海涵呀哈哈。 之所以选择惠普这款GK100&#xff0c;其实是因为强迫症&#xff0c;我用的是暗影精灵5&#xff0c;既然是第一次配机械键…

苹果iPhone14卡死怎么办?解决办法分享!

正常使用的iPhone14虽然很少会出现卡死的情况&#xff0c;但iPhone就是一台微型电脑&#xff0c;像电脑一样“死机”也不是没可能。 有用户称在使用iPhone14时出现突然出现弹出的提示框无法点击取消&#xff0c;锁屏也解决不了死机的问题。同时又因为屏幕其他区域不能操作&…

惠普gk100好不好_「商家透露」惠普gk100和gk400区别比较 哪款好?这样选不盲目...

键盘惠普gk100和gk400区别&#xff1f;虽然它们在性能上大差不差的&#xff0c;经过多方面比较&#xff0c;我还是选择惠普GK100这款&#xff0c;感觉性价比更高些&#xff0c; 惠普(HP) GK100机械键盘有线游戏专用吃鸡台式笔记本电脑办公套装电竞lol外设104键全键无冲 金属灰(…

Java数据的新增和更新

Overridepublic List<RuleTypeUpdate> insertAndSelectRuleTypeUpdate(List<RuleTypeUpdate> ruleTypeUpdate) {List<RuleTypeUpdate> ruleTypeUpdates ruleTypeUpdateMapper.selectRuleTypeUpdateList(new RuleTypeUpdate());//取差集List<RuleTypeUpda…

【跟晓月学shell脚本】掌握shell脚本变量原理及概念

前言 跟晓月一起学shell&#xff0c;死磕shell脚本&#xff0c;让shell脚本学习不再难。 想学习更多shell脚本的案例&#xff0c;可以前往我的师父的shell脚本专栏&#xff1a;shell脚本从入门到实战-案例篇 文章目录 前言一. 什么是变量&#xff1f;二. 变量分类2.1 按照变…

【2023unity游戏制作-mango的冒险】-7.玩法实现

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

WebRTC系列--FEC介绍

文章目录 1. 三种FEC介绍1.1 RedFEC (协议RFC2189)1.2 ULPFEC (协议RFC5109)1.3 FlexFEC2. FEC原理简述2.1 异或介绍2.2. 异或的特性2.3 fec实现冗余包的简单原理3. webrtc中fec在之前的文章 WebRTC系列–opus带内FEC和red效果中介绍opus带内fec的一些开启及使用效果;在文章 …

第九章 番外篇:TORCHSCRIPT

下文中的代码都使用参考教程中的例子。 会给出一点自己的解释。 参考教程&#xff1a; 文章目录 Introduction复习一下nn.Module()Torchscripttorch.jit.ScriptModule()torch.jit.script()torch.jit.trace()一个小区别 使用示例tracing Modulesscripting ModuleMixing scripti…