《Spring Boot框架入门到实践》(17)spring boot使用Thymeleaf

本文详细介绍了 Thymeleaf 模板引擎的各种功能,包括文本、数字、布尔和 null 字面量的使用,字符串拼接,三元运算判断,以及模板引擎提供的内置对象和功能对象的运用,如日期格式化、数字处理和集合操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Thymeleaf字面量

文本字面量

用单引号' '包围的字符串为文本变量,比如:

<a th:href="@{'api/getUser?id=' + ${user.id}}">修改</a>

数字字面量

	<p>今年是<span th:text="2017">1949</span></p>
 	<p>20年后是,<span th:text="2017+20">1969</span></p>

在这里插入图片描述

Boolean字面量

true和false

	<p th:if="${isFlag == true}">
 		执行操作。。。。
 	</p>

null字面量

	<p th:if="${userlist==null}">userlist为空</p>
	<p th:if="${userlist!=null}">userlist不为空</p>

Thymeleaf字符串拼接

一种是字面量拼接:
使用' '
<span th:text="'当前是第'+${sex}+'页,共'+${sex}+'页'"></span>
另一种是更优雅的方式,使用|减少了字符串的拼接:
<span th:text="|当前是第${sex}页,共${sex}页|"></span>

Thymeleaf三元运算判断

<span th:text="${sex == '1'}?'男':'女'">未知</span>
一定要注意:字符串要加''单引号

Thymeleaf运算和关系判断

算术运算:+,-,*,/,%
关系比较:>,<,>=,<= —(gt,lt,ge,le)
相等判断:==,!= —(eq,ne)

Thymeleaf表达式基本对象

1.模板引擎提供了一组内置对象,这些内置对象可以直接在模板中使用,这些对象由#号开始引用
2.官方手册

#request

相当于HttpServletRequest对象,3.x版本使用#request,若是2.x版本使用#httpServletRequest;
需要先在Controller后台设置与一个HttpServletRequest对象。
在这里插入图片描述

<p th:text="${#request.getAttribute('name')}">name</p>

在这里插入图片描述

#session

相当于HttpSession对象,3.x版本使用#session,若是2.x版本使用#httpSession;
需要先在Controller后台设置与一个HttpSession对象。
在这里插入图片描述

<p th:text="${#session.getAttribute('user')}"></p>

在这里插入图片描述

Thymeleaf表达式功能对象

  1. 模板引擎提供的一组功能性内置对象,可以在模板中直接使用这些对象提供的功能方法。
  2. 工作中常使用的数据类型,如集合,时间,数值,可以使用Thymeleaf提供的功能性对象来处理他们。
  3. 内置功能对象前都要加#号,内置对象一般以s结尾。
  4. 官方文档
  • #dates:java.util.Date对象的实用方法,<p th:text="${#dates.format(date,'yyyy-MM-dd HH:mm:ss')}"></p>
    可以输出时间,但是要先在Controller后台中加入Date。
    model.addAttribute("date", new Date());
  • #calendars: 和dates类型,但是是java.util.Calendar对象
  • #numbers: 格式化数字对象的实用方法
  • #strings: 字符串对象的使用方法
  • #objects: 对objects操作的实用方法
  • #bools: 对布尔值求值的使用方法
  • #arrays: 数组的实用方法
  • #lists: list的实用方法
  • #sets: set的实用方法
  • maps: map的实用方法
  • #aggregates: 对数组或集合创建聚合的实用方法
    具体实用方法和其他的表达式功能对象参考上边的官方文档。
资源下载链接为: https://pan.xunlei.com/s/VOYaEvb5YbXDcdRVMg3ANOaDA1?pwd=sjwe data.py 用于创建数据集。 makelabel.py 的功能是融合数字与背景并保存。其中,一张背景图会在四个象限随机添加一个数字,且几乎无重叠。标签形状为(32,32,11),32×32 是热图输出大小,每个热图像素对应原图 4×4 的方格,每个方格作为分类器,可分出 11 类,0-9 对应数字,10 代表背景。fusion_img 函数将一个数字融合到背景图的随机位置;fusion_4img 函数考虑到单个数字太少,可处理四个数字,输入参数为(背景,(图片 1,标签 1),(图片 2,标签 2)...),输出为图片(0-255)和标签。 model.py 是模型文件,最终占用 192kb 内存。 test.py 为测试脚本,包含两个定义的函数,加载模型后可进行单张测试和视频测试,使用时注释另一个即可。onepoint 函数输入矩阵和点的 xy 坐标,逐行扫描该点周围 6 行的像素,若为 1(表示有物体),就将对应方格的 xy 加入数组并置零。扫描完周围 6 行后,若总点数超过 10 个,判定为一个物体,对所有 xy 分别求平均,得到物体中心。 单张图片后处理过程:获取输出的 32×32×11 矩阵,先扫描 32×32 区域,对每行取 argmax,若不属于背景类,说明可能存在物体,再设阈值过滤部分误识别框,然后将该点值置为 1 作为标记。 再次扫描矩阵时,为避免越界,从第 6 行开始到 25 行结束。若扫描到 1,如(20,20,3)这一格为 1,就取矩阵对应 3 的那一层(32×32 大小),将该矩阵和(20,20)坐标传入 onepoint 函数,返回中心,类别为 3。一般不会误判,若一个数字有两种可能且两种像素数都超 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值