首页 > 其他分享 >动力节点SpringBoot3笔记——视图技术Thymeleaf

动力节点SpringBoot3笔记——视图技术Thymeleaf

时间:2023-04-12 11:31:45浏览次数:32  
标签:UserVO 视图 addAttribute Thymeleaf html SpringBoot3 model id 表达式

7 视图技术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,提供数据给页面

@Controllerpublic 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>

   显示此内容

<div th:if=“10>2”>

<tr th:each=”成员遍历:${表达式}”>

<td th:text=”${成员}”> 列</td>

</tr>


th:each处理循环,类似jstl中的<c:foreach>


</table>

   </tr>

     <td th:text=“${item}”>

  <tr th:each=“item:${list}”>

<table>

step1:main.html

增加连接

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

step2:创建UserVO

@Data
@AllArgsConstructorpublic class UserVO {
private Integer id;
private String name;
private Integer age;

step3:创建控制器方法

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

step4:创建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>

step5:浏览器访问

动力节点SpringBoot3笔记——视图技术Thymeleaf_架构

标签:UserVO,视图,addAttribute,Thymeleaf,html,SpringBoot3,model,id,表达式
From: https://blog.51cto.com/u_16033692/6185353

相关文章

  • 视图,触发器,存储过程
    目录一、视图1、什么是视图2、为什么要用视图3、如何用视图二、触发器1、为何要用触发器2、创建触发器语法3、实际应用三、存储过程1、介绍2、创建简单存储过程(无参)3、创建存储过程(有参)4、如何用存储过程5、查看存储与删除存储6、存储过程与事务使用举例(了解一、视图1、什么是......
  • 利用pandas 和 ttk.Treeviews制作xlsx视图工具
     importtkinterastkfromtkinterimportttkimportpandasaspdimporttkinter.messageboxasmsgboxdefStart():msgbox.showinfo('提示','OK')fp=pd.read_excel("./test.xlsx")foriintree.get_children():......
  • Python Django 通用视图和错误视图的使用
    定义通用视图修改book/models.py代码中的AuthorInfo类,如果一致则不必修改classAuthorInfo(models.Model):id=models.CharField(max_length=30,verbose_name="身份证号",primary_key=True)name=models.CharField(max_length=20,verbose_name="姓名")t......
  • 视图,触发器,事务,存储过程,内置函数,流程控制,索引
    目录SQL注入问题视图1、什么是视图2、为什么要用视图3、如何用视图触发器为何要用触发器创建触发器语法事务(掌握)什么是事务事务的作用事务的4个属性(ACID)如何用存储过程基本使用三种开发模型第一种第二种第三种创建存储过程如何用存储过程函数流程控制索引b+树聚集索引(primaryk......
  • 动力节点王鹤SpringBoot3笔记——第六章 远程访问@HttpExchange[SpringBoot 3]
    第六章 远程访问@HttpExchange[SpringBoot3]远程访问是开发的常用技术,一个应用能够访问其他应用的功能。SpringBoot提供了多种远程访问的技术。基于HTTP协议的远程访问是支付最广泛的。SpringBoot3提供了新的HTTP的访问能力,通过接口简化HTTP远程访问,类似Feign功能。Spring......
  • MySQL笔记之一致性视图与MVCC实现
    一致性读视图是InnoDB在实现MVCC用到的虚拟结构,用于读提交(RC)和可重复度(RR)隔离级别的实现。一致性视图没有物理结构,主要是在事务执行期间用来定义该事物可以看到什么数据。  一、ReadView事务在正式启动的时候我们会创建一致性视图,该一致性视图是基于整个库的。 1、tran......
  • 动力节点王鹤SpringBoot3笔记——第四章 访问数据库
    视频:动力节点SpringBoot3从入门到项目实战第四章访问数据库SpringBoot框架为SQL数据库提供了广泛的支持,既有用JdbcTemplate直接访问JDBC,同时支持“objectrelationalmapping”技术(如Hibernate,MyBatis)。SpringData独立的项目提供对多种关系型和非关系型数据库的访问支持。......
  • 动力节点王鹤SpringBoot3笔记—— 第二章 掌控SpringBoot基础篇
    第二章掌控SpringBoot基础篇2.1SpringBoot?SpringBoot是目前流行的微服务框架倡导约定优先于配置”其设目的是用来简化新Spring应用的初始化搭建以及开发过程。SpringBoot提供了很多核心的功能,比如自动化配置starter(启动器)简化Maven配置、内嵌Servlet容......
  • 动力节点王鹤SpringBoot3笔记——第五章 说说Web服务
    第五章说说Web服务基于浏览器的B/S结构应用十分流行。SpringBoot非常适合Web应用开发。可以使用嵌入式Tomcat、Jetty、Undertow或Netty创建一个自包含的HTTP服务器。一个SpringBoot的Web应用能够自己独立运行,不依赖需要安装的Tomcat,Jetty等。SpringBoot可以创建两种类型的Web应......
  • 动力节点王鹤SpringBoot3学习笔记——第五章 说说Web服务
    第五章说说Web服务基于浏览器的B/S结构应用十分流行。SpringBoot非常适合Web应用开发。可以使用嵌入式Tomcat、Jetty、Undertow或Netty创建一个自包含的HTTP服务器。一个SpringBoot的Web应用能够自己独立运行,不依赖需要安装的Tomcat,Jetty等。SpringBoot可以创建两种类型的Web应......