zl程序教程

您现在的位置是:首页 >  后端

当前栏目

深入实践Spring Boot3.3.2 Thymeleaf功能简介

Spring 功能 实践 深入 简介 thymeleaf
2023-09-11 14:16:04 时间

3.3.2 Thymeleaf功能简介

在HTML页面上使用Thymeleaf标签语言,用一个简单的关键字“th”来标注。使用Thymeleaf标签语言的典型例子如下:

h3 th:text="${actor.name}" /h3

img th:src="@{/images/logo.png}"/

其中,th:text指定了在标签 h3 中显示的文本,它的值来自于关键字“$”所引用的内存变量,th:src设定了标签 img 的图片文件的链接地址,既可以是绝对路径,也可以是相对路径。下面列出了Thymeleaf的一些主要标签和函数。

th:text,显示文本。

th:utext:和th:text的区别是针对"unescaped text"。

th:attr:设置标签属性。

th:if or th:unless:条件判断语句。

th:switch,th:case:选择语句。

th:each:循环语句。

 

#dates:日期函数。

#calendars:日历函数。

#numbers:数字函数。

#strings:字符串函数。

#objects:对象函数。

#bools:逻辑函数。

#arrays:数组函数。

#lists:列表函数。

本章的实例工程将在视图设计中使用Thymeleaf的下列几个主要功能,而有关Thymeleaf的详细说明和介绍可以访问它的官方网站http://www.thymeleaf.org/,以获得更多的帮助。

1.?使用功能函数

Thymeleaf有一些日期功能函数、字符串函数、数组函数、列表函数等,代码清单3-11是Thymeleaf使用日期函数的一个例子,#dates.format是一个日期格式化的使用实例,它将电影的创建日期格式化为中文环境的使用格式“yyyy-MM-dd HH:mm:ss”。

代码清单3-11 Thymeleaf使用函数

th:value="${movie.createDate} ? ${#dates.format(movie.createDate,yyyy-MM-dd HH:mm:ss)} :"

2.?使用编程语句

Thymeleaf有条件语句、选择语句、循环语句等。代码清单3-12使用each循环语句来显示一个数据列表,即在下拉列表框中使用循环语句来显示所有的演员列表。

代码清单3-12 th:each循环

select name="actorid" id="actorid"

option value="" 选择演员 /option

option th:each="actor:${actors}"

    th:value="${actor.id}"

    th:text="${actor.name}"

/option

/select

3.?使用页面框架模板

Thymeleaf的页面框架模板是比较优秀的功能。预先定义一个layout,它具有页眉、页脚、提示栏、导航栏和内容显示等区域,如代码清单3-13所示。其中,layout:fragment=

prompt"是一个提示栏,它可以让引用的视图替换显示的内容;fragments/nav :: nav是一个导航栏并指定了视图文件,也就是说它不能被引用的视图替换内容;layout:fragment="content"是一个主要内容显示区域,它也能由引用的视图替换显示内容;fragments/footer :: footer是一个页脚定义并且也指定了视图文件,即不被引用的视图替换显示内容。这样设计出来的页面模板框架如图3-1所示。

代码清单3-13 layout模板

div

    div

        div

            a href="#" img th:src="@{/images/logo.png}"/ /a

        /div

        div

            h3 电影频道 /h3

        /div

    /div

/div

div layout:fragment=" prompt "

    当前位置:首页 em 页面 /em

/div

table

    tr

        td valign="top"

            div th:replace="fragments/nav :: nav" /div

        /td

        td /td

        td valign="top"

            div layout:fragment="content" /div

        /td

    /tr

/table

 

div th:replace="fragments/footer :: footer" /div

 

图3-1 页面框架模板

有了页面模板之后,就可以在一个主页面视图上引用上面的layout,并替换它的提示栏prompt和主要内容显示区域content,其他页眉、页脚和导航栏却保持同样的内容,如代码清单3-14所示。这样就可以设计出一个使用共用模板的具有统一风格特征的界面。

代码清单3-14 使用layout模板的视图设计

html xmlns:th="http://www.thymeleaf.org" layout:decorator="fragments/layout"

……

div layout:fragment=" prompt "

当前位置:首页 em 电影管理 /em

/div

 

div layout:fragment="content"

......

/div


Spring Cloud 应用 Proxyless Mesh 模式探索与实践 本文通过一个 Demo 演示了 SpringCloud 应用通过接入MSE服务治理之后,无需修改任意代码就能具备 Proxyless Mesh的能力,当前 MSE 服务治理支持还有些限制,在持续补充完善中。
Spring Cloud 应用 Proxyless Mesh 模式探索与实践 本文通过一个 Demo 演示了 SpringCloud 应用通过接入MSE服务治理之后,无需修改任意代码就能具备 Proxyless Mesh的能力,当前 MSE 服务治理支持还有些限制,在持续补充完善中。当前 MSE 服务治理 Proxyless 模式支持基础的服务发现能力以及 DestinationRule 的 Subset 能力,我们可以配合 MSE 流量治理实现 Mesh 架构下的全链路灰度、标签路由等治理能力。
微服务开发平台 Spring Cloud Blade 部署实践 本文介绍使用 Rainbond 快速部署 Spring Cloud Blade 微服务平台。Spring Cloud Blade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于 React 和 Vue 的两个前端框架用于快速搭建企业级的 SaaS 多租户微服务平台。
基于网关服务治理的研究与实践(三)微服务治理框架Spring Cloud SpringCloud是Spring官方推出的微服务治理框架,是一个基于Spring Boot框架实现的微服务架构开发工具集,其提供了完整的微服务解决方案,包括:服务治理、注册中心、配置管理、熔断器、服务路由等等。
Spring AOP注解的学习与实践 使用 横切 技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。
大规模 Spring Cloud 微服务无损上下线探索与实践 软件迭代过程中,除了风险控制,在微服务领域还有一个常见的问题就是应用上下线过程中的流量治理,目的也比较明确,确保应用在发布、扩缩容、重启等场景时,不会损失任何业务流量损失。无损下线技术正是在这样的背景下应运而生的,他解决了变更过程中的业务流量损失问题,也是流量治理体系中非常重要的一个环节。无损下线功能有效地保证我们业务流量的平滑,提升了微服务开发的幸福度。
Spring 加强版 ORM 框架 spring-data-jpa 入门与实践 伴随着 Java 诞生与发展,目前 Java 界涌现出了五花八门的数据访问技术,有一些名词甚至达到了耳熟能详的程度,包括 JDBC、JTA、JPA、ORM、MyBatis 等等,这篇介绍的是 Spring Data 项目中的 spring-data-jpa 框架,了解其他相关技术可以查阅我前面的文章。
Spring 加强版 ORM 框架 spring-data-jdbc 入门与实践 Spring 为了支持以统一的方式访问不同类型的数据库,提供了一个 Spring Data 框架,这个框架根据不同的数据库访问技术划分了不同的模块。上篇 《Spring 加强版 ORM 框架 Spring Data 入门》 介绍了不同模块遵循的通用规范,这篇我们来介绍下基于 JDBC 技术实现的 spring-data-jdbc 模块。
大规模 Spring Cloud 微服务无损上下线探索与实践 软件迭代过程中,除了风险控制,在微服务领域还有一个常见的问题就是应用上下线过程中的流量治理,目的也比较明确,确保应用在发布、扩缩容、重启等场景时,不会损失任何业务流量损失。无损下线技术正是在这样的背景下应运而生的,他解决了变更过程中的业务流量损失问题,也是流量治理体系中非常重要的一个环节。无损下线功能有效地保证我们业务流量的平滑,提升了微服务开发的幸福度。
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载