当前位置: 首页 > news >正文

三、thymeleaf基本语法

3.1、基本语法

3.1.1变量表达式:${...}

变量表达式用于在页面中输出指定的内容,此内容可以是变量,可以是集合的元素,也可以是对象的属性。主要用于填充标签的属性值,标签内的文本,以及页面中js变量的值等。

1、显示文本内容

把变量表达式放在一对嵌套的中括号中“[[]]”,可以用于输出标签之间的文本,也可用于给js变量赋一个静态的值。

如果文本是一段HTML标签,在页面输出时会进行转义,并不会添加成子标签。

示例

在TestServlet的doPost方法的request对象中添加两个字符串属性“title”和“msg”,其中“msg”是一个标签的脚本。

request.setAttribute("title", "这是一个字符串");
request.setAttribute("msg", "
这是一个字符串
");

在index.html中输出此属性的值

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>[[${title}]]</title>
</head>
<body>	 
<div>[[${msg}]]</div>	 	<script type="text/javascript">	alert('[[${title}]]')	</script></body></html>

运行test.do,页面会输了此属性的值

点击“对话框”的"确定"后在页面显示的是转义后的内容。

如果需要加载为HTML标签,可以使用[()]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"><title>[[${title}]]</title>
</head>
<body><div>[(${msg})]</div>	</body>
</html>

运行test.do,页面会输了此属性的值

2、标签属性值的赋值

要在标签属性上使用表达式,属性名前必须使用"th:"标识。thymeleaf几乎对所有的标签属性都进行了重定义,使每个属性都可以使用"th:"标签来进行动态赋值。

示例

在testServlet的情况中增加一个属性,用于设置字体的颜色

request.setAttribute("color", "color:red;");

在test.html中添加一个div标签,标签上添加"th:style"和“th:utext”属性。注意属性“th:utext”和“th:text”的区别,“th:utext”一般用于在标签内容添加HTML子元素,“th:text”用于输出文本内容,此属性与[[${}]]的作用相同。

<div th:style="${color}" th:utext="${msg}"></div>

运行test.do,页面显示效果如下

3、通过属性赋值

在一些业务中,某个属性可能需要根据条件来判断是否添加,比如checkbox的checkbox属性,input的readonly等。此时可以使用"th:attr"属性

示例:

在WebContent创建img目录,复制一张图片到此目录中,重命名为“test.xxx”,

在TestServlet的request中添加属性,保存此图片的路径

request.setAttribute("url", "/img/test.jpg");

在test.html中添加img标签,标签使用"th:attr"给src属性赋值

<img th:attr="src=@{${url}}"  width="200"/>

运行test.do,页面显示效果如下

“th:attr”也可以同时给多个属性赋值,比如图片的路径和宽度

 文章来源于哔站《三、thymeleaf基本语法》

更多学习视频和专栏文章请到哔站个人空间: 布道师学院的个人空间-布道师学院个人主页-哔哩哔哩视频

更多资源和项目下载请到:”开源吧(找实战项目和毕设项目的好网站)“ ​ :开源吧

相关文章:

三、thymeleaf基本语法

3.1、基本语法 3.1.1变量表达式&#xff1a;${...} 变量表达式用于在页面中输出指定的内容&#xff0c;此内容可以是变量&#xff0c;可以是集合的元素&#xff0c;也可以是对象的属性。主要用于填充标签的属性值&#xff0c;标签内的文本&#xff0c;以及页面中js变量的值等…...

创建一个新的IDEA插件项目

启动IntelliJ IDEA并按照以下步骤创建新的插件项目&#xff1a; 打开IntelliJ IDEA并单击“Create New Project”&#xff08;创建新项目&#xff09;。 在左侧菜单栏中选择“IntelliJ Platform Plugin”&#xff08;IntelliJ平台插件&#xff09;。 在右侧窗格中&#xff0c…...

Doris数据库BE——冷热数据方案

新的冷热数据方案是在整合了存算分离模型的基础上建立的&#xff0c;其核心思路是&#xff1a;DORIS本地存储作为热数据的载体&#xff0c;而外部集群&#xff08;HDFS、S3等&#xff09;作为冷数据的载体。数据在导入的过程中&#xff0c;先作为热数据存在&#xff0c;存储于B…...

Python无废话-办公自动化Excel格式美化

设置字体 在使用openpyxl 处理excel 设置格式&#xff0c;需要导入Font类&#xff0c;设置Font初始化参数&#xff0c;常见参数如下&#xff1a; 关键字参数 数据类型 描述 name 字符串 字体名称&#xff0c;如Calibri或Times New Roman size 整型 大小点数 bold …...

竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…...

Django 数据库迁移(Django-04)

一 数据库迁移 数据库迁移是一种数据库管理技术&#xff0c;它用于在应用程序的开发过程中&#xff0c;根据模型&#xff08;Model&#xff09;的变化自动更新数据库结构&#xff0c;以保持数据库与代码模型的一致性。数据库迁移的主要目的是确保数据库与应用程序的模型定义同…...

Redis相关概念

1. 什么是Redis&#xff1f;它主要用来什么的&#xff1f; Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提…...

Scala第十八章节

Scala第十八章节 scala总目录 文档资料下载 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合…...

JAVA学习(4)-全网最详细~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

【单片机】12-串口通信和RS485

1.通信有关的常见概念 区分&#xff1a;串口&#xff0c;COM口&#xff0c;UART&#xff0c;USART_usart和串口区别-CSDN博客 串口、COM口、UART口, TTL、RS-232、RS-485区别详解-CSDN博客 1.什么是通信 &#xff08;1&#xff09;人和人之间的通信&#xff1a;说话&#xff…...

一步步教你使用GDB调试程序:从入门到精通的全面指南

文章目录 Step1&#xff1a;安装GDB1.1、包管理器安装1.2、下载源码编译安装 Step2&#xff1a;编译程序时添加调试信息Step3&#xff1a;GDB启动、退出、查看代码Step4&#xff1a;GDB断点操作Step5&#xff1a;GDB调试操作5.1 单步调试5.2 多进程调试 调试是软件开发中非常重…...

OpenCV读取图像时按照BGR的顺序HWC排列,PyTorch按照RGB的顺序CHW排列

OpenCV读取RGB图像 在OpenCV中&#xff0c;读取的图片默认是HWC格式&#xff0c;即按照高度、宽度和通道数的顺序排列图像尺寸的格式。我们看最后一个维度是C&#xff0c;因此最小颗粒度是C。 例如&#xff0c;一张形状为2562563的RGB图像&#xff0c;在OpenCV中读取后的格式…...

基于安卓android微信小程序的校园维修平台

项目介绍 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整…...

mysql面试题16:说说分库与分表的设计?常用的分库分表中间件有哪些?分库分表可能遇到的问题有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说说分库与分表的设计? 在MySQL中,分库与分表是常用的数据库水平扩展技术,可以提高数据库的吞吐量和扩展性。下面将具体讲解MySQL中分库与分表…...

AlexNet网络复现

1. 引言 在现代计算机视觉领域&#xff0c;深度学习已经成为了一个核心技术&#xff0c;其影响力远超过了传统的图像处理方法。但深度学习&#xff0c;特别是卷积神经网络&#xff08;CNN&#xff09;在计算机视觉的主导地位并不是从一开始就有的。在2012年之前&#xff0c;计…...

pytorch模型量化和移植安卓详细教程

十一下雨,在家撸模型,希望对pytorch模型进行轻量化,间断摸索了几天,效果不错,做个总结分享出来。 量化是一种常见的技术,人们使用它来使模型在推断时运行更快,具有更低的内存占用和更低的功耗,而无需更改模型架构。在这篇博客文章中,我们将简要介绍量化是什么以及如何…...

C++(List)

本节目标&#xff1a; 1.list介绍及使用 2.list深度剖析及模拟实现 3.list和vector对比 1.list介绍及使用 1.1list介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;…...

分布式架构篇

1、微服务 微服务架构风格&#xff0c;就像是把一个单独的应用程序开发为一套小服务&#xff0c;每个服务运行在自己的进程中&#xff0c;并使用轻量级机制通信&#xff0c;通常是 HTTP API。这些服务围绕业务能力来构建&#xff0c;并通过完全自动化部署机制来独立部署。这些…...

ros编译报错-- Could NOT find ros_ethercat_eml (missing: ros_ethercat_eml_DIR)

– Could NOT find ros_ethercat_eml (missing: ros_ethercat_eml_DIR) – Could not find the required component ‘ros_ethercat_eml’. The following CMake error indicates that you either need to install the package with the same name or change your environment …...

VD6283TX环境光传感器驱动开发(3)----测试闪烁频率代码

VD6283TX环境光传感器驱动开发----3.测试闪烁频率代码 概述视频教学样品申请源码下载参考代码开发板设置测试结果 概述 ST提供了6283A1_AnalogFlicker代码在X-NUCLEO-6283A1获取闪烁频率&#xff0c;同时移植到VD6283TX-SATEL。 闪烁频率提取主要用于检测光源的闪烁频率&#…...

【仅限首批200名开发者】DeepSeek毒性检测白皮书V3.1泄露版:含未公开的multilingual bias benchmark结果

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek毒性检测模型的演进与V3.1泄露事件全景 DeepSeek Toxicity Detection&#xff08;DTDD&#xff09;系列模型自2022年发布初版以来&#xff0c;持续迭代强化对中文语境下隐性偏见、诱导性话术、…...

Docker部署RabbitMQ后,你的admin账号真的能连上吗?一个权限配置的深度踩坑实录

Docker部署RabbitMQ后admin账号连接失败的深度排查指南 当你用Docker快速部署了RabbitMQ&#xff0c;创建了admin用户&#xff0c;甚至能通过Web界面登录&#xff0c;却在代码中遭遇ACCESS_REFUSED错误时&#xff0c;那种挫败感我深有体会。这不是简单的密码错误问题&#xff0…...

3步解决JavaScript精度问题:decimal.js高精度计算完整指南

3步解决JavaScript精度问题&#xff1a;decimal.js高精度计算完整指南 【免费下载链接】decimal.js An arbitrary-precision Decimal type for JavaScript 项目地址: https://gitcode.com/gh_mirrors/de/decimal.js 在JavaScript开发中&#xff0c;你是否经常遇到这样的…...

Adobe-GenP 3.0:三步解锁Adobe全家桶的终极指南

Adobe-GenP 3.0&#xff1a;三步解锁Adobe全家桶的终极指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为昂贵的Adobe Creative Cloud订阅费而烦恼吗&#…...

5分钟快速上手:res-downloader 全网资源下载神器终极指南

5分钟快速上手&#xff1a;res-downloader 全网资源下载神器终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否经…...

从零构建实时数据仪表盘:React+Node.js实现任务控制面板

1. 项目概述&#xff1a;从“任务控制面板”看现代数据驱动决策的落地最近在GitHub上看到一个挺有意思的项目&#xff0c;叫iriseye931-ai/mission-control-dashboard。光看这个名字&#xff0c;就让我想起了科幻电影里那些布满屏幕、闪烁着各种数据和图表的指挥中心。没错&…...

工程师着装文化变迁:从安全规范到效率优化

1. 项目概述&#xff1a;从“着装规范”到工程师文化观察那天早上&#xff0c;我像往常一样&#xff0c;准备去马萨诸塞州纳蒂克的MathWorks公司拜访。出门前&#xff0c;我习惯性地套上了长裤。七月的波士顿&#xff0c;夏天终于姗姗来迟&#xff0c;气温宜人&#xff0c;其实…...

LLM与图数据库融合:自然语言驱动知识图谱查询实战

1. 项目概述&#xff1a;当LLM遇见图数据库&#xff0c;知识推理的新范式最近在探索如何让大语言模型&#xff08;LLM&#xff09;更好地处理复杂、结构化的知识时&#xff0c;我遇到了一个非常有意思的项目&#xff1a;dylanhogg/llmgraph。这个项目本质上是一个桥梁&#xff…...

NExT-GPT:从多模态对齐到任意模态生成的架构与实战

1. 项目概述&#xff1a;从“多模态”到“任意模态”的进化 如果你在过去一年里关注过AI领域&#xff0c;一定对“多模态大模型”这个词不陌生。从GPT-4V到Gemini&#xff0c;主流模型都在努力让AI能同时理解文本和图像。但不知道你有没有想过一个问题&#xff1a;为什么我们和…...

AI时代计算机教育变革:从代码生成到系统设计的教学重构

1. 项目概述&#xff1a;当AI走进计算机课堂&#xff0c;我们面临的真实图景作为一名在计算机教育一线摸爬滚打了十几年的从业者&#xff0c;我亲眼见证了从粉笔黑板到多媒体教室&#xff0c;再到如今云端协作的变迁。但最近两年&#xff0c;以ChatGPT、GitHub Copilot为代表的…...