SpringBoot三步整合Thymeleaf模板技术

Margaret ·
更新时间:2024-11-11
· 535 次阅读

戏如人生,却不是人生;人生如戏,却也不是戏。 文章目录前言Thymeleaf整合部分Thymeleaf的基本语法常量和变量的拼接存值取值直接取值通过标签取值条件判断if 判断unless 判断三元判断循环常用的方法 前言

关于如何搭建SpringBoot工程以及开启Web功能,
可以查看我的这篇博客:用Spring Initializr快速构建SpringBoot及整合MVC

Thymeleaf

都2200年了,还在用JSP吗?但可惜Spring官方支持的服务的渲染模板中,并不包含jsp,而是Thymeleaf和Freemarker等。而Thymeleaf与SpringMVC的视图技术,及SpringBoot的自动化配置集成非常完美,几乎没有任何成本。而且现在越来越多的公司都实行前后端分离了,所以还是跟着官方走吧!

在这里插入图片描述

整合部分

1.在依赖管理文件pom.xml中添加Thymeleaf的起步依赖spring-boot-starter-thymeleaf

org.springframework.boot spring-boot-starter-thymeleaf

2.在application.yml配置文件中配置关闭thymeleaf页面缓存

spring: thymeleaf: # 关闭页面缓存 cache: false

3.最后一步,在工程src/main/resources/templates目录下,新建一个HTMl文件,如hello.html并在标签中添加一个thymeleaf的命名空间:

xmlns:th="http://www.thymeleaf.org"

并编辑点内容,如:

Title

Hello guqueyue!

或者,参照我的这篇博客,直接配置一个Thymeleaf的文件模板:SpringBoot的常用代码模板,直接找到File and Code Templates中的Thymeleaf章节即可。

到这里,已经整合完成了,springboot就是这么简单。下面让我们来测试一下吧!

先在依赖管理文件pom.xml中添加一个Web功能的起步依赖spring-boot-starter-web

org.springframework.boot spring-boot-starter-web

再新建一个controller,如:

package com.guqueyue.controller; import org.springframework.stereotype.Controller; /** * @author guqueyue * @Date 2020/4/13 **/ @Controller public class HelloController { /** * 去到hello.html页面 * @return 直接返回页面的名字 */ @RequestMapping("/hello") public String toHello() { return "hello"; } }

启动应用程序,打开浏览器输入"http://localhost:8080/hello",显示:
在这里插入图片描述
则说明访问成功!

Thymeleaf的基本语法

先创建一个实体类,如:

package com.guqueyue.entity; /** * @author guqueyue * @Date 2020/4/14 **/ //lombok插件的注解 @Data // 若未使用lombok插件,请自行生成getter、setter以及toString方法 @AllArgsConstructor // 若未使用lombok插件,请自行生成有参构造方法 @NoArgsConstructor // 若未使用lombok插件,请自行生成无参构造方法 @Accessors(chain = true) // 开启链式编程 public class Person { private String name; private Integer age; } 常量和变量的拼接

Thymeleaf中常量和变量如果拼接,那么必须在一头一尾加上|,如:

删除 存值

Themeleaf在web层通过model来存值,语法为:

model.addAttribute(key, value);

具体代码如:

package com.guqueyue.controller; /** * @author guqueyue * @Date 2020/4/13 **/ @Controller public class HelloController { /** * 去到hello.html页面 * @return 直接返回页面的名字 */ @RequestMapping("/hello") public String toHello(Model model) { /** * 创建两个对象及一个对象数组存放这两个对象 */ Person person = new Person().setName("大宝").setAge(17); Person person1 = new Person().setName("小宝").setAge(19); Person[] persons = {person, person1}; /** * 把这两个对象及这个对象数据添加到模型中 */ model.addAttribute("person", person); model.addAttribute("person1", person1); model.addAttribute("persons", persons); return "hello"; } } 取值

Thymeleaf通过${}来获取model中的值,虽然很像JSP中的el表达式,但却不是el表达式,而是ognl表达式

直接取值

直接取值的话没有代码提示,语法:[[${key}]],如:[[${person.name}]]

通过标签取值

通过html标签取值的话,有代码提示,要方便一些,如:

小花

具体代码如下:

Title

Hello guqueyue!

[[${person.name}]]
小花

启动程序,打开浏览器输入"http://localhost:8080/hello",显示:
= 18}">[[${person1.name}]]是个成年人


<a th:unless="${person1.age [[${person1.name}]]是个未成年人
是个 <a th:text="${person.age

启动程序,打开浏览器输入"http://localhost:8080/hello",显示:

启动程序,打开浏览器输入"http://localhost:8080/hello",显示:
生日

运行程序,打开浏览器按设置输入路径,浏览器显示:
在这里插入图片描述


作者:古阙月



thymeleaf springboot

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章