Spring Boot的Web开发之Thymeleaf模板引擎的解析及使用(Thymeleaf的基础语法以及常用属性)

简介: Spring Boot的Web开发之Thymeleaf模板引擎的解析及使用(Thymeleaf的基础语法以及常用属性)

在Spring Boot的Web应用中 建议开发者使用HTML完成动态页面 Spring Boot提供了许多模板引擎,因为Thymeleaf提供了完美的Spring MVC支持 所以在Spring Boot的Web应用中推荐使用Thymeledf作为模板引擎


Thymeleaf是一个Java类库 是一个XML/XHTML/HTML5的模板引擎,能够处理HTML XML JavaScript以及CSS可以作为MVC Web应用的view层显示数据


Spring Boot的的Thymeleaf支持


1:创建Spring Strater Project


选择菜单 File-New-Spring Strater Project 打开后 输入信息后单击Next


2:选择依赖

1666444611880.jpg

3:创建控制器类


创建一个名为com.ch.ch5_1的包 然后创建控制类 代码如下

package com.ch.ch5_1.controller;
import org.springframework.stereotype.Controller;
@Controller
public class TestThymeleafController {
@RequestMapping("/")
  public String test() {
  return "index";
  }
}


4:新建index.html页面 代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
测试Spring Boot的Thymeleaf支持
</body>
</html>


然后运行主类即可


Thymeleaf基础语法


1:引入Thymeleaf


首先将View层页面文件的html标签修改如下


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


然后 在View层页面文件的其他标签里 使用th:*动态处理页面


<img th:src="'image/'+${aBook.picture}"/>


2:输出内容


<p th:text="#{test.myText}:></p>  不对HTML标签解析


<p th:utext="#{test,ntText}"></p> 对HTML标签解析


3:基本表达式


变量表达式:¥{...}


变量表达式用于访问容器上下文环境中的变量

<span th:text="${information}">


选择变量表达式:*{...}


选择变量表达式计算的是选定的对象

name<span th:text="*{firstName}"></span><br>


信息表达式:#{...}


信息表达式一般用于显示页面静态文本 将可能需要根据需求而整体变动的静态文本放在一起以便维护

<p th:text="${test.myText}"></p>


4:引入URL


Thymeleaf通过模块@{...}表达式引入URL

<a th:href="@{http://www.tup..tsinghua.edu.cn/index.html{param1='传参')}">去清华大学出版社</a>


5:访问WebContext对象中的属性


Thymeleaf模板通过一些专门的表达式从模板的WebContext获取请求参数 部分如下

${xxx}将返回存储在的变量或者属性
${param.xxx}返回一个名为xxx的请求参数
${session.xxx}返回一个名为xxx的HttpSession作用域中的属性


6:运算符


同Java


7:条件判断


if 只有在条件成立时才显示标签内容

unless 只有在条件不成立时才显示标签内容

switch 支持多路选择 defalut用*表示


8:循环


Thymeleaf模板使用th:each="obj,iterStat:${objList}"标签进行迭代循环


9:内置对象


内置对象一般都以s结尾 可以通过#直接访问 如下图

1666444762367.jpg

Thymeleaf的常用属性


Thymeleaf语法的使用都是通过在html页面的标签中添加th:xxx关键字来实现模板套用 并且其属性与html页面标签基本类似 常用属性有以下几种


1:th:action

th:action定义后台控制器路径 类似于action属性
<form th:action="@{/login}...</form>


2:th:each

用于集合对象遍历 功能类似于JSTL标签的foreach
th:each="gtype:${gtypes}">


3:th:field

用于表单参数绑定 通常于th:object一起使用
<input type="text"value="" th:field="*{username}"></input>


4:th:href

用于定义超链接
<a th:href="@{/gogo}"></a>


5:th:id

用于id的声明
<div th:id="stu+(${rowStat.index}+1)"></div>


6:th:if

用于条件判断
<div th:if="${rowStat.index}==0"> dosomething</div>


7:th:fragment


声明定义该属性的div为模板片段 常用于头文件


8:th:object


用于表单数据对象绑定 将表单绑定到后台controller的一个JavaBean参数 经常与th:field一起使用 进行表单数据绑定


9:th:onclick

用于修改单击事件 代码如下
<button th:onclick="'getCollect()':></button>



相关文章
|
12天前
|
缓存 安全 PHP
【PHP开发专栏】Symfony框架核心组件解析
【4月更文挑战第30天】本文介绍了Symfony框架,一个模块化且高性能的PHP框架,以其可扩展性和灵活性备受开发者青睐。文章分为三部分,首先概述了Symfony的历史、特点和版本。接着,详细解析了HttpFoundation(处理HTTP请求和响应)、Routing(映射HTTP请求到控制器)、DependencyInjection(管理依赖关系)、EventDispatcher(实现事件驱动编程)以及Security(处理安全和认证)等核心组件。
|
1天前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
8 2
|
5天前
|
Linux 开发工具 Android开发
移动应用与系统:开发与操作系统的深度解析
【5月更文挑战第6天】 在数字化时代,移动应用和操作系统是信息技术的核心组成部分。本文深入探讨了移动应用的开发过程、关键技术以及移动操作系统的架构和功能。通过对这些技术的详细分析,我们可以更好地理解移动应用和系统的工作原理,以及它们如何影响我们的生活和工作。
|
11天前
|
Dart 前端开发 开发者
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
【4月更文挑战第30天】Dart是Google为Flutter框架打造的高效编程语言,具有易学性、接口、混入、抽象类等特性。本文概述了Dart的基础语法,包括静态类型(如int、String)、控制流程(条件、循环)、函数、面向对象(类与对象)和异常处理。此外,还介绍了库导入与模块使用,帮助开发者快速入门Flutter开发。通过学习Dart,开发者能创建高性能的应用。
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
|
12天前
|
JSON 安全 Swift
【Swift开发专栏】Swift中的JSON解析与处理
【4月更文挑战第30天】本文介绍了Swift中的JSON解析与处理。首先,讲解了JSON的基础,包括其键值对格式和在Swift中的解析与序列化方法。接着,展示了如何使用`Codable`协议简化JSON操作,以及处理复杂结构的示例。通过这些内容,读者能掌握在Swift中高效地处理JSON数据的方法。
|
12天前
|
存储 数据库连接 PHP
【PHP开发专栏】深入解析PHP数据类型与运算符
【4月更文挑战第30天】本文深入探讨了PHP的编程基础——数据类型和运算符。PHP支持整型、浮点型、字符串、布尔型、数组、对象、资源等数据类型。运算符包括算术、字符串、赋值、比较、逻辑、位、错误控制及范围运算符。通过示例展示了如何计算圆面积、判断素数和求斐波那契数列,以帮助读者更好地理解和应用这些概念。
|
12天前
|
缓存 Java 开发者
10个点介绍SpringBoot3工作流程与核心组件源码解析
Spring Boot 是Java开发中100%会使用到的框架,开发者不仅要熟练使用,对其中的核心源码也要了解,正所谓知其然知其所以然,V 哥建议小伙伴们在学习的过程中,一定要去研读一下源码,这有助于你在开发中游刃有余。欢迎一起交流学习心得,一起成长。
|
12天前
|
设计模式 算法 搜索推荐
【PHP开发专栏】PHP设计模式解析与实践
【4月更文挑战第29天】本文介绍了设计模式在PHP开发中的应用,包括创建型(如单例、工厂模式)、结构型和行为型模式(如观察者、策略模式)。通过示例展示了如何在PHP中实现这些模式,强调了它们在提升代码可维护性和可扩展性方面的作用。设计模式是解决常见问题的最佳实践,但在使用时需避免过度设计,根据实际需求选择合适的设计模式。
|
16天前
|
Dart Java Android开发
Flutter插件开发:开发与使用的技术解析
【4月更文挑战第26天】本文详细介绍了Flutter插件开发,包括创建插件项目、编写原生代码(Android和iOS)、注册与使用插件。通过Flutter命令行工具生成插件,使用MethodChannel进行Dart与原生平台的通信。示例展示了如何获取设备信息并展示在Flutter应用中。文章还提到插件测试与发布,强调了兼容性与性能的重要性,指出Flutter插件是扩展应用功能的关键。
|
16天前
|
开发框架 Dart Java
Flutter的核心:Dart语言基础——语法与特性深度解析
【4月更文挑战第26天】Flutter框架背后的Dart语言,以其简洁的语法和独特特性深受开发者喜爱。本文深入解析Dart的语法与特性,如类型推导、动态静态类型系统、统一的类接口、访问权限控制以及并发编程支持。了解并掌握Dart,能助开发者更高效地利用Flutter构建高性能移动应用。

推荐镜像

更多