thymeleaf入门

本文介绍了Thymeleaf模版引擎的基本概念和在SpringBoot中的使用,包括Thymeleaf的特点、安装配置、常用表达式如th:if、th:each、th:switch等的使用示例,以及碎片(组件)、注释类型和组件参数传递等高级功能。
摘要由CSDN通过智能技术生成

thymeleaf

简介

Thymeleaf模版引擎使用

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

SpringBoot支持如下页面模板语言:

  • Thymeleaf
  • FreeMarker
  • Velocity
  • Groovy
  • JSP

其中Thymeleaf是SpringBoot官方所推荐使用的,Thymeleaf是动静分离的,页面中的动态标签是需要传递有数据的时候才会渲染,不然就是原本默认的静态的样子。

模板引擎的作用就是取得数据并加以处理,最后显示出数据。

Thymeleaf与JSP的区别在于,不运行项目之前,Thymeleaf也是纯HTML(不需要服务端的支持)而JSP需要进行一定的转换,这样就方便前端人员进行独立的设计、调试。相较与其他的模板引擎,它有如下三个极吸引人的特点:

  • 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

  • 2.Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

  • 3.Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。 ---- 作者:我没有三颗心脏

使用教程

官方教程

在使用thymele之前 先导入依赖

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

在【resources】下的【templates】下新建一个【hello.html】文件,使用这个目录的原因是当你使用模板引擎时Spring Boot会默认在src/main/resources/templates下去找,当然你也可以修改这个默认路径。

HTML页面中,还需要引用th名字空间。

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

在yaml配置文件中可以设置开发时关闭thymeleaf缓存

spring.thymeleaf.cache=false

开发运行时,可以开启idea的资源更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DAnYB0Mh-1616982388410)(springboot.assets/image-20210329091348190.png)]

thymeleaf常用表达式

简单表达式:
    变量表达式: ${...}  
    选择变量表达式: *{...}
    消息表达: #{...}
    链接URL表达式: @{...}
    片段表达式: ~{...}
文字
    文本文字:'one text','Another one!',...
    号码文字:0,34,3.0,12.3,...
    布尔文字:true,false
    空文字: null
    文字标记:one,sometext,main,...
文字操作:
    字符串串联: +
    文字替换: |The name is ${name}|
    算术运算:
    二元运算符:+,-,*,/,%
    减号(一元运算符): -
布尔运算:
    二元运算符:and,or
    布尔否定(一元运算符): !,not
比较和平等:
    比较:>,<>=,<=(gt,lt,ge,le)
    等号运算符:==,!=(eq,ne)
条件运算符:
    如果-则: (if) ? (then)
    如果-则-否则: (if) ? (then) : (else)
    默认: (value) ?: (defaultvalue)
特殊令牌:
    无操作: _

表达式使用案例

${x}将返回x存储在Thymeleaf上下文中或作为请求属性的变量。

[[${abc+'123'}]] ==[[${}]]== 是将控制器中abc的值在页面显示
model.addAttribute("abc","这是我的第一个thymeleaf页面");

渲染User对象的信息我们可以这样

<div>
    <h2 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值