Thymeleaf模板

1.1 介绍

官方文档:thymeleaf-spring整个时的thymeleaf文档

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#expression-basic-objects

Thymeleaf 是用来开发 Web 和独立环境项目的现代服务器端 Java 模板引擎。
Thymeleaf 的主要目标是为您的开发工作流程带来优雅的 自然模板 - HTML 。可以在直接浏览器中正确显示,并且可以作为静态原型,从而在开发团队中实现更强大的协作。
借助 Spring Framework 的模块,可以根据自己的喜好进行自由选择,可插拔功能组件, Thymeleaf 是现代 HTML5 JVM Web开发的理想选择 - 尽管它可以做的更多 。
Spring 官方支持的服务的渲染模板中,并不包含 jsp 。而是 Thymeleaf Freemarker 等,而 Thymeleaf 与 SpringMVC的视图技术,及 SpringBoot 的自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。
特点:
动静结合: Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态 效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+ 数据的展示方式。浏览器解释 html 时会忽略未定的标签属性, 所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时, Thymeleaf 标签会动态地替换掉静 态内容,使页面动态显示。
开箱即用:它提供标准和 spring 标准两种方言,可以直接套用模板实现 JSTL OGNL 表达式效果,避免 每天套模板、该jstl 、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。
多方言支持: Thymeleaf 提供 spring 标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的 实现表单绑定、属性编辑器、国际化等功能。
SpringBoot 完美整合, SpringBoot 提供了 Thymeleaf 的默认配置,并且为 Thymeleaf 设置了视图解 析器,我们可以像以前操作jsp 一样来操作 Thymeleaf 。代码几乎没有任何区别,就是在模板语法上有区别。

1.2 基本设置

1.2.1 创建环境

勾选 web Thymeleaf 的依赖:

1.2.2 默认配置

不需要做任何配置,启动器已经帮我们把 Thymeleaf 的视图器配置完成:

而且,还配置了模板文件(html)的位置,与jsp类似的前缀+ 视图名 + 后缀风格:

 默认前缀: classpath:/templates/

 默认后缀: .html
所以如果我们返回视图: users ,会指向到 classpath:/templates/users.html
Thymeleaf 默认会开启页面缓存,提高页面并发能力。但会导致我们修改页面不会立即被展现,因此我们关闭缓存:
# 关闭Thymeleaf的缓存
spring.thymeleaf.cache=false
另外,修改完毕页面,需要使用快捷键: Ctrl + Shift + F9 来刷新工程。

1.2.3 快速开始

我们准备一个controller,控制视图跳转:

@Controller
public class HelloController {
@GetMapping("show1")
public String show1(Model model){
    model.addAttribute("msg", "Hello, Thymeleaf!");
    return "hello";
    }
}
新建一个 html 模板:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>hello</title>
</head>
<body>
    <h1 th:text="${msg}">大家好</h1>
</body>
</html>
注意 ,把 html 的名称空间,改成: xmlns:th="http://www.thymeleaf.org" 会有语法提示
启动项目,访问页面:

1.3 语法 

Thymeleaf 的主要作用是把 model 中的数据渲染到 html 中,因此其语法主要是如何解析 model 中的数据。从以下方面来学习:
1.变量
2.方法
3.条件判断
4.循环
5.运算
6.逻辑运算
7.布尔运算
8.比较运算
9.条件运算

1..3.1 变量

我们先新建一个实体类: User
public class User {
    String name;
    int age;
    User friend;// 对象类型属性
}
然后在模型中添加数据
@GetMapping("show2")
public String show2(Model model){
    User user = new User();
    user.setAge(21);
    user.setName("Jack Chen");
    user.setFriend(new User("李小龙", 30));
    model.addAttribute("user", user);
    return "show2";
}
语法说明:
Thymeleaf 通过 ${} 来获取 model 中的变量,注意这不是 el 表达式,而是 ognl 表达式,但是语法非常像。
示例:
我们在页面获取 user 数据:
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值