动力节点王鹤SpringBoot3笔记——第七章 视图技术Thymeleaf

news/2024/9/22 12:54:00/

目录

第七章  视图技术Thymeleaf

前言

7.1 表达式 

7.2  if-for


第七章  视图技术Thymeleaf

前言

Thymeleaf 是一个表现层的模板引擎, 一般被使用在 Web 环境中,它可以处理 HTML, XML、 JS 等文档,简单来说,它可以将 JSP 作为 Java Web 应用的表现层,有能力展示与处理数据。Thyme leaf 可以让表现层的界面节点与程序逻辑被共享,这样的设计, 可以让界面设计人员、业务人员与技术人员都参与到项目开发中。

这样,同一个模板文件,既可以使用浏览器直接打开,也可以放到服务器中用来显示数据,并且样式之间基本上不会存在差异,因此界面设计人员与程序设计人员可以使用同一个模板文件,来查看静态与动态数据的效果。

Thymeleaf作为视图展示模型数据,用于和用户交互操作。JSP的代替技术。比较适合做管理系统,是一种易于学习,掌握的。我们通过几个示例掌握Thymeleaf基础应用。

创建新的Spring Boot项目Lession19-Admin, Maven构建工具,JDK19。 Spring Web, Thymeleaf , Lombok依赖。包名称:com.bjpowernode.tpl

7.1 表达式 

表达式用于在页面展示数据的,有多种表达式语法,最常用的是变量表达式、链接表达式。

表达式作用例子
$ {...}变量表达式,可用于获取后台传过来的值<p th:text="${userName}">中国</p>
@ {...}链接⽹址表达式th:href="@{/css/home.css}"

 step1:创建首页在static/mian.html

静态资源默认放在static目录,Spring Boot按约定,可直接访问。main.html就是普通的HTML文件。

<html lang="en">
</head>
<body><div style="margin-left: 200px">1.<a href="exp">表达式</a> <br/></div>
</body>
</html>

step2:创建Controller,提供数据给页面

@Controller
public class ThymeleafController {@GetMapping("/exp")public String exp(Model model){model.addAttribute("name","动力节点IT培训");model.addAttribute("address","北京的大兴区");return "exp";}@GetMapping("/link")public String link(Integer id, String name,Model model){model.addAttribute("id",id);model.addAttribute("myname",name);return "link";}
}

step3:templates/目下创建Thymeleaf的文件

exp.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h3>表达式</h3><div th:text="${name}"></div><div th:text="${address}"></div><br/><a th:href="@{http://www.baidu.com}">连接到百度</a> <br/><a th:href="@{/link}">连接表达式无参数</a> <br/><a th:href="@{/link(id=111,name=lisi)}">连接表达式传递参数</a> <br/></body>
</html>

link.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h3>表达式</h3>id:<div th:text="${id}"></div>姓名:<div th:text="${myname}"></div>
</body>
</html>

7.2  if-for

Thymeaf同样支持if,for语句的使用。

表达式作用例子
th:if=“boolean表达式”th:if 当条件满足时,显示代码片段。 条件常用boolean表示,true满足,反之不满足。<div th:if=“10>2”>    显示此内容 </div>
<tr th:each=”成员遍历:${表达式}”>     <td th:text=”${成员}”> 列 </td> </tr>th:each处理循环,类似jstl中的<c:foreach><table>   <tr th:each=“item:${list}”>      <td th:text=“${item}”>    </tr> </table>

main.html

增加连接

2.<a href="if-for">if和for</a>

创建UserVO

@Data
@AllArgsConstructor
public class UserVO {private Integer id;private String name;private Integer age;
}

创建控制器方法

@GetMapping("if-for")
public String ifFor(Model model){UserVO userVO = new UserVO(10, "李四",20);model.addAttribute("user", userVO);List<UserVO> users = Arrays.asList(new UserVO(11, "张三",21),new UserVO(12, "周行",22));model.addAttribute("users",users);return "base";
}

创建base.html模板页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h3>if,for 表达式</h3><div th:if="${user.age > 18}">成年了</div><br/><table border="1"><thead><th>id</th><th>姓名</th><th>年龄</th></thead><tbody><tr th:each="u:${users}"><td th:text="${u.id}"></td><td th:text="${u.name}"></td><td th:text="${u.age}"></td></tr></tbody></table></body>
</html>

浏览器访问


http://www.ppmy.cn/news/40388.html

相关文章

蓝牙耳机哪个品牌好用又便宜?2023便宜耐用的蓝牙耳机推荐

随着蓝牙耳机的受欢迎程度越来越高&#xff0c;其更迭速度也越来越快&#xff0c;各种品牌的蓝牙耳机出现在大众视野。下面&#xff0c;我来给大家分享几款便宜耐用的蓝牙耳机&#xff0c;都极具性价比&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xf…

thinkphp之超级无限分类 10行代码

效果图 代码 static public $treeList array(); //存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList array(); 清空/*** 无限级分类* access public * param Array $data //数据库里获取的结果集 * param Int $pid * param Int $count …

Vue3通透教程【十】跨级组件通讯—依赖注入

文章目录&#x1f31f; 写在前面&#x1f31f; provide函数&#x1f31f; inject 函数&#x1f31f; 跨组件通讯&#x1f31f; 写在最后&#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更新 Vue3 的相…

区块链 -> 区块链简介

文章目录区块链结合去中心化后组成的数据库有什么特点?区块链能干什么?区块链实际是一种数据库。 不同于我们的MySQL数据库,区块链是一种分布式数据库。 腾讯:Tencent Distributed SQL&#xff0c;简称 TDSQL。阿里:PolarDB PostgreSQL&#xff0c;简称PolarDB-PG。 区块链…

[SpringBoot系列] 定时任务

假设我们已经搭建好了一个基于Spring Boot项目&#xff0c;首先我们要在Application中设置启用定时任务功能EnableScheduling 启动定时任务 package com.scheduling; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.Spr…

掌握这些技巧,轻松在Facebook上实现SEO

Facebook是世界上最大的社交网络之一&#xff0c;每天有数亿用户在上面交流&#xff0c;分享内容和互动。随着越来越多的企业开始使用Facebook来进行品牌推广和营销活动&#xff0c;如何在Facebook上实现SEO已经成为了一个非常重要的话题。 本文将为您介绍一些在Facebook上实现…

从前M个字母中任取N个的组合 [2*+]

目录 从前M个字母中任取N个的组合 [2*+] 程序设计 程序分析 从前M个字母中任取N个的组合 [2*+] 输出前M个字母中任取N个的所有组合情况 Input 输入两个数M 和 N M>=N 1<=M<=10 Output 按字典序输出组合情况 Sample Input 4 2 Sample Output AB AC AD BC BD …

程序员+本硕博——高效软件

程序员本硕博——高效软件windows10one commander&#xff1a;家庭使用免费&#xff0c;不需要买pro总体介绍栏目布局&#xff1a;默认左右双栏&#xff0c;可以隐藏&#xff0c;可以换成上下双栏隐藏上下双栏切换分栏导航&#xff1a;【两个】文件栏&#xff0c;【右上角】都有…