详解Spring Boot页面中Thymeleaf的语法规则

Spring Boot ——Web页面访问及模板引擎thymeleaf引入 写在前面: 根据之前介绍的,Spring Boot Web项目创建步骤: 创建Spring Boot应用,选中我们项目中需要的模块 项目创建完后,其基础配置就已经完成,我们只需要在配置文件(application.yml)中指定少量的配置就可以运行 业务代码编写 一、SpringBoot对静态资源的映射 1)在Spring Boot中我们将所有的前端使用的类库,如... 阅读详情

推荐阅读


开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如下页面模板语言

  • Thymeleaf
  • FreeMarker
  • Velocity
  • Groovy
  • JSP

上面并没有列举所有SpringBoot支持的页面模板技术。其中Thymeleaf是SpringBoot官方所推荐使用的,下面来谈谈Thymeleaf一些常用的语法规则。

一. 添加Thymeleaf依赖

要想使用Thhymeleaf,首先要在pom.xml文件中单独添加Thymeleaf依赖。

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

Spring Boot默认存放模板页面的路径在src/main/resources/templates或者src/main/view/templates,这个无论是使

用什么模板语言都一样,当然默认路径是可以自定义的,不过一般不推荐这样做。另外Thymeleaf默认的页面文件后缀是.html。

二. 数据显示

在MVC的开发过程中,我们经常需要通过Controller将数据传递到页面中,让页面进行动态展示。

1. 显示普通文本

创建一个Controller对象,在其中进行参数的传递

@Controller
public class ThymeleafController {
	@RequestMapping(value = "show", method = RequestMethod.GET)
	public String show(Model model){
		model.addAttribute("uid","123456789");
		model.addAttribute("name","Jerry");
		return "show";
	}
}

在SpringBoot默认的页面路径下创建show.html文件,内容如下

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>SpringBoot模版渲染</title>
<meta http-equiv="Content-Type" content= "text/html;charset=UTF-8"/>
</head>
<body>
<p th:text="'用户ID:' + ${uid}"/>
<p th:text="'用户名称:' + ${name}"/>
</body>
</html>

可以看到在p标签中有th:text属性,这个就是thymeleaf的语法,它表示显示一个普通的文本信息。

如果我们要显示的信息是存在资源文件中的,同样可以在页面中显示,例如资源文件中定义了内容welcome.msg=欢迎{0}光临!。可以在页面中将其显示

<h2 th:text="#{welcome.msg('admin')}"/>

另外,在th:utext中还能做一些基础的数学运算

<p th:text="'数学计算:1+2=' + (1 + 2)"/>

2. 显示带有样式的普通文本

如果我们想要传递到的页面的信息,它本身是带有CSS样式的,这个时候如何在页面中将携带的样式信息也显示出来?此时我们的控制器方法这样写。

@RequestMapping(value = "showStyle", method = RequestMethod.GET)
public String showStyle(Model model){
	model.addAttribute("uid","123456789");
	model.addAttribute("name","<span style=' color:red'>Jerry</span>");
	return "show_style";
}

此时页面中需要借助th:utext属性进行显示

<p th:utext="'用户名称:' + ${name}"/>

通过浏览器查看页面源码可以看出th:utext和th:text的区别是:th:text会对《和》进行转义,而th:utext不会转义。

3. 显示对象

我们常常需要将一个bean信息展示在前端页面当中。

用于前端展示的VO类

public class User implements Serializable {
	private long uid ;
	private String name ;
	private Integer age ;
	private Date birthday ;
	private double salary ;
	//省略get/set方法
}

控制器方法

@RequestMapping(value = "/message/member_show", method = RequestMethod.GET)
public String memberShow(Model model) {
	User vo = new User();
	vo.setUid(12345678L);
	vo.setName("尼古拉丁.赵四");
	vo.setAge(59);
	vo.setSalary(1000.00);
	vo.setBirthday(new Date());
	model.addAttribute("member", vo);
	return "message/member_show";
}

页面展示

<div>
<p th:text="'用户编号:' + ${member.uid}"/>
<p th:text="'用户姓名:' + ${member.name}"/>
<p th:text="'用户年龄:' + ${member.age}"/>
<p th:text="'用户工资:' + ${member.salary}"/>
<p th:text="'出生日期:' + ${member.birthday}"/>
<p th:text="'出生日期:' + ${#dates.format (member.birthday, 'yyyy-MM-dd')}"/>
</div>
<hr/>
<div th:object="${member}">
<p th:text="'用户编号:' + *{uid}"/>
<p th:text="'用户姓名:' + *{name}"/>
<p th:text="'用户年龄:' + *{age}"/>
<p th:text="'用户工资:' + *{salary}"/>
<p th:text="'出生日期:' + *{birthday}"/>
<p th:text="'出生日期:' + *{#dates.format(birthday, 'yyyy-MM-dd')}"/>
</div>

上面给出了两种展现方式,一种是通过${属性},另外一种是通过{属性}。

关于“${属性}”和“{属性}”的区别?

$访问完整信息,而访问指定对象中的属性内容, 如果访问的只是普通的内容两者没有区别;

三. 数据处理

在 thymeleaf 之中提供有相应的集合的处理方法,例如:在使用 List 集合的时候可以考虑采用 get()方法获取指定索引的数据,那么在使用 Set 集合的时候会考虑使用 contains()来判断某个数据是否存在,使用 Map 集合的时候也希望可以使用 containsKey()判断某个 key 是否存在,以及使用get()根据 key 获取对应的 value,而这些功能在之前并不具备,下面来观察如何在页面中使用此类操作

控制器方法向页面传递一些数据,以供操作

@RequestMapping(value = "/user/set", method = RequestMethod.GET)
public String set(Model model) {
	Set<String> allNames = new HashSet<String>() ;
	List<Integer> allIds = new ArrayList<Integer>() ;
	for (int x = 0 ; x < 5 ; x ++) {
		allNames.add("boot-" + x) ;
		allIds.add(x) ;
	}
	model.addAttribute("names", allNames) ;
	model.addAttribute("ids", allIds) ;
	model.addAttribute("mydate", new java.util. Date()) ;
	return "user_set" ;
}

数据处理

<body>
<p th:text="${#dates.format(mydate,'yyyy-MM-dd')}"/>
<p th:text="${#dates.format(mydate,' yyyy-MM-dd HH:mm:ss.SSS')}"/>
<hr/>
<p th:text="${#strings.replace('www.baidu. cn','.','$')}"/>
<p th:text="${#strings.toUpperCase('www. baidu.cn')}"/>
<p th:text="${#strings.trim('www.baidu.cn')}"/>
<hr/>
<p th:text="${#sets.contains(names,' boot-0')}"/>
<p th:text="${#sets.contains(names,' boot-9')}"/>
<p th:text="${#sets.size(names)}"/>
<hr/>
<p th:text="${#sets.contains(ids,0)}"/>
<p th:text="${ids[1]}"/>
<p th:text="${names[1]}"/>
</body>

四. 路径处理

在传统WEB工程开发时,路径的处理操作是有点麻烦的。SpringBoot中为我们简化了路径的处理。

在"src/main/view/static/js"中创建一个js文件

然后在页面中可以通过“@{路径}”来引用。

<script type="text/javascript" th: src="@{/js/main.js}"></script>

页面之间的跳转也能通过@{}来实现

<a th:href="@{/show}"> 访问controller方法</a>
<a th:href="@{/static_index.html}" >访问静态页面</a>

五. 操作内置对象

虽然在这种模版开发框架里面是不提倡使用内置对象的,但是很多情况下依然需要使用内置对象进行处理,所以下面来看下如何在页面中使用JSP内置对象。

在控制器里面增加一个方法,这个方法将采用内置对象的形式传递属性。

@RequestMapping(value = "/inner", method = RequestMethod.GET)
public String inner(HttpServletRequest request, Model model) {
	request.setAttribute("requestMessage", "springboot-request");
	request.getSession().setAttribute("sessionMessage", "springboot -session");
	request.getServletContext().setAttribute ("application Message",
	"springboot-application");
	model.addAttribute("url", "www.baidu.cn");
	request.setAttribute("url2",
	"<span style='color:red'>www.baidu.cn </span>");
	return "show_inner";
}

在页面之中如果要想访问不同属性范围中的内容,则可以采用如下的做法完成:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>SpringBoot模版渲染</title>
<script type="text/javascript" th:src= "@{/js/main.js}"></script> 
<meta http-equiv="Content-Type" content= "text/html;charset=UTF-8"/>
</head>
<body>
<p th:text="${#httpServletRequest. getRemoteAddr()}"/>
<p th:text="${#httpServletRequest. getAttribute('request Message')}"/>
<p th:text="${#httpSession.getId()}"/>
<p th:text="${#httpServletRequest. getServletContext(). getRealPath('/')}"/>
<hr/>
<p th:text="'requestMessage = ' + $ {requestMessage}"/>
<p th:text="'sessionMessage = ' + $ {session.sessionMessage}"/>
<p th:text="'applicationMessage = ' + ${application. applicationMessage}"/>
</body>
</html>

thymeleaf 考虑到了实际的开发情况,因为 request 传递属性是最为常用的,但是 session 也有可能使用,例如:用户登录之后需要显示用户 id,那么就一定要使用到 session,所以现在必须增加属性范围的形式后才能够正常使用。在 thymeleaf 里面也支持有 JSP 内置对象的获取操作,不过一般很少这样使用。

六. 逻辑处理

所有的页面模版都存在各种基础逻辑处理,例如:判断、循环处理操作。在 Thymeleaf 之中对于逻辑可以使用如下的一些运算符来完成,例如:and、or、关系比较(>、=、<=、==、!=、lt、gt、le、ge、eq、ne)。

通过控制器传递一些属性内容到页面之中:

<span th:if="${member.age lt 18}">
未成年人!
</span>
<span th:if="${member.name eq '啊三'}">
欢迎小三来访问!
</span>

不满足条件的判断

<span th:unless="${member.age gt 18}">
你还不满18岁,不能够看电影!
</span>

通过swith进行分支判断

<span th:switch="${member.uid}">
<p th:case="100">uid为101的员工来了</p>
<p th:case="99">uid为102的员工来了</p>
<p th:case="*">没有匹配成功的数据!</p>
</span>

七. 数据遍历

在实际开发过程中常常需要对数据进行遍历展示,一般会将数据封装成list或map传递到页面进行遍历操作。

定义控制器类,向页面传递List数据和Map数据

@Controller
public class UserController {
	@RequestMapping(value = "/user/map", method = RequestMethod.GET)
	public String map(Model model) {
		Map<String,User> allMembers = new HashMap <String,User>();
		for (int x = 0; x < 10; x++) {
			User vo = new User();
			vo.setUid(101L + x);
			vo.setName("赵四 - " + x);
			vo.setAge(9);
			vo.setSalary(99999.99);
			vo.setBirthday(new Date());
			allMembers.put("mldn-" + x, vo);
		}
		model.addAttribute("allUsers", allMembers);
		return "user_map";
	}
	@RequestMapping(value = "/user/list", method = RequestMethod.GET)
	public String list(Model model) {
		List<User> allMembers = new ArrayList<User>();
		for (int x = 0; x < 10; x++) {
			User vo = new User();
			vo.setUid(101L + x);
			vo.setName("赵四 - " + x);
			vo.setAge(9);
			vo.setSalary(99999.99);
			vo.setBirthday(new Date());
			allMembers.add(vo) ;
		}
		model.addAttribute("allUsers", allMembers);
		return "user_list";
	}
}

list类型数据遍历

<body>
<table>
<tr><td>No.</td><td>UID</td><td>姓名</td> <td>年龄</td><td>偶数</td><td>奇数</td></tr>
<tr th:each="user,memberStat:${allUsers}">
<td th:text="${memberStat.index + 1}"/>
<td th:text="${user.uid}"/>
<td th:text="${user.name}"/>
<td th:text="${user.age}"/>
<td th:text="${memberStat.even}"/>
<td th:text="${memberStat.odd}"/>
</tr>
</table>
</body>

map类型数据遍历

<body>
<table>
<tr><td>No.</td><td>KEY</td><td>UID</td> <td>姓名</td><td>年龄</td><td>偶数</td> <td>奇数</td></tr>
<tr th:each="memberEntry,memberStat:${allUsers}">
<td th:text="${memberStat.index + 1}"/>
<td th:text="${memberEntry.key}"/>
<td th:text="${memberEntry.value.uid}"/>
<td th:text="${memberEntry.value.name}"/>
<td th:text="${memberEntry.value.age}"/>
<td th:text="${memberStat.even}"/>
<td th:text="${memberStat.odd}"/>
</tr>
</table>
</body>

八. 页面引入

我们常常需要在一个页面当中引入另一个页面,例如,公用的导航栏以及页脚页面。thymeleaf中提供了两种方式进行页面引入。

th:replace

th:include

新建需要被引入的页面文件,路径为"src/main/view/templates/commons/footer.html"

<meta http-equiv="Content-Type" content= "text/html;charset=UTF-8"/>
<footer th:fragment="companyInfo">
<p>设为首页 ?2018 SpringBoot 使用<span th: text="${projectName}"/>前必读
意见反馈 京ICP证030173号 </p>
</footer>

可以看到页面当中还存在一个变量projectName,这个变量的值可以在引入页面中通过th:with="projectName=百度"传过来。

引入页面中只需要添加如下代码即可

Java_supermanNO1:专注于Java开发技术的研究与知识分享!

————END————

精彩尽在评论区
  • 点赞(编辑不易,感谢您的支持)
  • …
  • 转发(分享知识,传播快乐)
  • …
  • 关注(每天更新Java开发技术)
  • …
Spring Boot 快速整合 Thymeleaf 因为本项目中前端使用的是Thymeleaf 渲染,所以,我们先把Thymeleaf 集成到我们的项目中来。 前言 Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点 Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外 的属性来达到模板 + 数 阅读详情

相关推荐

Spring Boot 大型线上商城项目实战教程:Thymeleaf 语法详解及编码实践

前文中详细介绍了 Thymeleaf 模板引擎,并通过一个 demo 案例讲解了如何整合并简单的使用 Thymeleaf 模板引擎进行页面开发,本篇文章内容将详细的介绍 Thymeleaf 模板引擎的属性和表达式语法,并结合实际的代码进行页面功能开发。

斌擎科技 365

Thymeleaf #arrays.contains使用

⏹Thymeleaf #arrays.contains使用

菜鸟记录 1383

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 381

thymeleaf 简介和语法

1 thymeleaf 简介 2 thymeleaf 语法 - th 属性 3 thymeleaf 语法 - 内置方法 4 thymeleaf 语法 - 标准表达式 ========================================================= 1 thymeleaf 简介 和过去学的jsp很象,是一个模板引擎 1)创建 Springboot maven 项目 pom 中的配置如下 <parent>...

m0_51152186的博客 1012

NVIDIA Video Codec SDK-解码接口cuvid简介

特性已废弃的 NVCUVID现代的 NVDECODE (底层 API)现代的 NVDECODE (高层 API - NvDecoder)状态已废弃 (Deprecated)官方推荐 (底层控制)官方推荐 (易用性首选)编程模型C 函数C 函数C++ 类复杂度高,需要管理大量细节中高,仍需管理解码会话低,开箱即用灵活性高高中(满足绝大多数场景)推荐对象遗留项目维护需要极致控制的高级用户所有新项目、大多数开发者。

fudexiang的博客 1178

lstm如何输入多维序列_深度学习也可以做时间序列异常诊断

最近在看的一篇论文里,用到了GRU、VAE等技术来做多维时间序列异常诊断。那么今天首先来聊一聊深度学习的基础知识,然后简单说一下论文。以下基础知识部分的内容,主要来源于李宏毅老师的课程。有兴趣的可以去看李老师的课程哦https://www.bilibili.com/video/BV1JE411g7XF?p=1 1、GRU(Gate Recurrent Unit):GRU是循环神经网络(Recurr...

weixin_30899789的博客 2833

自学SpringBoot--03视图层技术--Thymeleaf语法详解

SpringBoot 变量输出与字符串操作 th:text th:text 在页面中输出值 th:value th:value 可以将一个值放入到input标签的value中 判断字符串是否为空 thymeleaf内置对象 注意语法: 1,调用内置对象一定要用# 2,大部分的内置对象都以s结尾strings、numbers、dates’ ...

qq_41911570的博客 395

AGV舵轮选型实战:从核心参数到精准计算的完整指南

本文提供了一份详尽的AGV舵轮选型实战指南,强调从经验决策转向数据驱动。文章系统讲解了如何将工况需求转化为核心参数,并通过牵引力、扭矩、功率等关键计算步骤,指导工程师完成精准选型,避免因选型不当导致的运行故障与效率低下。

醉三国 495

thymeleaf判断list中是否存在某个值

之前遇到了一个list,想判断一下是否存在某个值,虽然可以用th:each="listInfo : ${transportList}"循环判断,但是我画面有很多地方要用到,所以这方法太麻烦,不可取 而th:if中也只有一些简单的比较: 1 gt: (大于)> 2 ge:(大于等于)>= 3 eq:(等于)== 4 lt:(小于)< 5 le:(小于等于)<= 6 ne:(不等于)!= <label id="title" th:if="${ID} == '01'"&g

qq_34357018的博客 7471

Realtek RTD1319D芯片解析:H.266与AV1双解码的机顶盒SoC

视频编解码技术是数字媒体传输的核心,H.266/VVC作为新一代标准,相比H.265提升50%压缩效率,显著降低带宽需求。其实现原理依赖于专用硬件解码器和并行处理架构,在超高清视频传输领域具有重要价值。Realtek RTD1319D作为首款商用H.266处理器,采用异构计算设计,集成四核ARM CPU和独立视频处理单元,同时支持AV1解码,兼顾市场兼容性。该SoC特别适合4K机顶盒、数字标牌等应用场景,其HDMI 2.1a接口和DVB解调器为超高清内容传输提供完整解决方案。开发时需注意散热设计和内存配置优

weixin_42591413的博客 671

计算机组成原理实验二 运算器组成实验

事实上,ALU的设计是在全加器的基础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实现多种功能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3—F1的制约,因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn 、Yn,然后,再将Xn 、Yn和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。AC寄存器可用来存储ALU的输入以实现两个操作数的运算操作,也可以用来存储来自ALU的结果,以将这些结果反馈给ALU以进行更多的处理。

qq_63574533的博客 1450

Thymeleaf语法详解总结

1.变量输出与字符串操作 th:text (在页面中输出值) th:value (将一个值放入input标签的value中) 2.Thymeleaf内置对象 1.调用内置对象用# 2.大部分内置对象都以s结尾 ${#strings.isEmpty(key)} (判断字符串是否为空,如果为空返回true,否则...

weixin_42490134的博客 852

使用openair包分析气象数据

气象数据通常是有规律的时间序列,分析气象数据时需要对空气质量测量、气象数据和扩散模型输出进行分析。openair 是用于分析空气质量数据或更广泛的大气成分数据的R软件包。该软件包广泛应用于学术界、公共和私营部门。该项目最初由英国自然环境研究委员会(NERC)资助,并由英国环境部(Defra)提供额外资金。

Christina 2519

SpringBoot 后台传值给页面展示Thymeleaf

开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如下页面模板语言 Thymeleaf FreeMarker Velocity Groovy JSP 上面并没有列举所有SpringBoot支持的页面模板技术。其中Thymeleaf是SpringBoot官方所推荐使用的,下面来谈谈Thymeleaf一些常用...

laidanlove250的博客 1万+

XYC Q8开源掌机刷第三方系统教程

分区结束后直接将各种游戏文件放入OD分区的Roms文件夹下

m0_60352504的博客 4569

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring Boot—thymeleaf语法规则以及使用

文章目录一、渲染机制二、导入thymeleaf的名称空间四、使用thymeleaf五、语法规则1.属性及属性的优先级2.表达式 一、渲染机制 @ConfigurationProperties(prefix = "spring.thymeleaf") public class ThymeleafProperties { private static final Charset DEFAULT_E...

梁同学与Android 950

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Spring Boot开发(七)Thymeleaf模板引擎

模板引擎 我们知道,在web开发时,一般都会涉及到很多的静态资源,如js、image、css文件等。 正如REST web服务,你也可以使用Spring MVC提供动态HTML内容。Spring MVC支持各种各样的模板技术,包括Velocity, FreeMarker和JSPs,很多其他的模板引擎也提供它们自己的Spring MVC集成。 模板引擎的原理 模板引擎的作用都是将模板(页面)和数据进行整合然后输出显示 模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的,我们写一些表达式。而这

m0_53698336的博客 1060

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring Boot集成Thymeleaf模板引擎

一、Thymeleaf 模板介绍 Spring Boot 推荐使用Thymeleaf 来代替传统开发中的JSP,那么什么是Thymeleaf 模板引擎呢?下面就来简单的介绍一下。 Thymeleaf 官方地址链接:https://www.thymeleaf.org/ 1.1什么是Thymeleaf Thymeleaf 是一款用于渲染XML/XHTML/HTML5 内容的模板引擎。...

点滴记录 1388

spring boot整合Thymeleaf

1、引入thymeleaf; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> ...

weixin_30814223的博客 92

Spring Boot Thymeleaf(十一)

Thymeleaf 是新一代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板引擎不同,Thymeleaf 支持 HTML 原型,其文件后缀为“.html”,因此它可以直接被浏览器打开,此时浏览器会忽略未定义的 Thymeleaf 标签属性,展示 thymeleaf 模板的静态页面效果;使用变量表达式还可以使用内置基本对象,获取内置对象的属性,调用内置对象的方法。除了能使用内置的基本对象外,变量表达式还可以使用一些内置的工具对象。1.1.2 使用内置的基本对象。....

qq_21370419的博客 1725

【Spring Boot】初识Thymeleaf

简单介绍一下Thymeleaf模板引擎

Decade0712的博客 632

springboot整合thymeleaf

springboot整合thymeleaf

听钱塘信来的博客 5984

Thymeleaf入门教程

Thymeleaf 是新一代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板引擎不同,Thymeleaf 支持 HTML 原型,其文件后缀为“.html”,因此它可以直接被浏览器打开,此时浏览器会忽略未定义的 Thymeleaf 标签属性,展示 thymeleaf 模板的静态页面效果;当通过 Web 应用程序访问时,Thymeleaf 会动态地替换掉静态内容,使页面动态显示。

qq_37534947的博客 4205

spring boot之thymeleaf(四)

由于spring boot不支持jsp,所以页面与后台交互就要使用其他的模板引擎可以使用Thymeleaf,Freemarke,Velocit等 spring boot推介的是Thymeleaf。 1.引入Thymeleaf模板引擎,Thymeleaf3+需要layout2+,Thymeleaf2+需要布局layout1+ &lt;properties&gt; &lt;project...

BushRo 1260

IDEA2023 SpringBoot整合Thymeleaf(四)

IDEA2023 SpringBoot整合Thymeleaf(四)

分享我的点点滴滴,在成长路上与你同行! 1489

Spring Boot 整合 Thymeleaf模板引擎 Thymeleaf入门

Spring Boot 整合 Thymeleaf Thymeleaf简介 1.Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点 2.Thymeleaf 在有网络和无网络的环境下皆可运行,即 它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。 3....

yufire的博客 437
上一篇: 我以为自己是个优秀的架构师,直到看完本文……
下一篇: 阿里架构师浅析经典多线程设计模式,你看懂了吗?
Java_supermanNO1
博客等级 码龄7年 1170粉丝 329原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值