一文搞懂Thymeleaf的使用

本文主要介绍Thymeleaf的使用
如有需要,可以参考
如有帮助,不忘 点赞

FreeMarker模板引擎的使用

一、前期预热

1)是什么

Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。
从代码层次上讲:Thymeleaf是一个java类库,他是一个xml/xhtml/html5的模板引擎,可以作为mvc的web应用的view层

2)传统JSP的弊端
  1. 项目目录结构繁琐
  2. 页面不简洁
  3. jsp内置错误页面不能覆盖springboot默认的错误页面
  4. 只能打成war不能打成jar
  5. 内置的jetty服务器不支持jsp
  6. 页面响应较慢,如果数据量较多
3)优点何在
  1. 开箱即用,它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言
  2. ymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能
  3. 有网无网的情况下模版页面都可以执行,美工的页面拿来就可以用,相对jsp减少了额外的标签,页面也更加简洁

二、正文接入

1)如何使用
1、在工程中引入thymeleaf;
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
     版本:2.1.6
</dependency>
切换thymeleaf版本
<properties>
	<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
	<!-- 布局功能的支持程序  thymeleaf3主程序  layout2以上版本 -->
	<!-- thymeleaf2   layout1-->
	<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
</properties>
2、参数配置
@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {
	private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");
	private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("text/html");
	//只要我们把 HTML 页面放在classpath:/templates/,thymeleaf就能自动渲染
	public static final String DEFAULT_PREFIX = "classpath:/templates/";
	public static final String DEFAULT_SUFFIX = ".html";
}
3、html页面导入thymeleaf的名称空间
<html lang="en" xmlns:th="http://www.thymeleaf.org">
2)基本介绍
1、使用thymeleaf语法
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>成功!</h1>
    <!--th:text 将div里面的文本内容设置为${msg} 同 jsp ,后台只需把数据放入map中即可-->
    <div th:text="${msg}">这是显示欢迎信息</div>
</body>
</html>
2、语法规则

1)th属性
th:text: 改变当前元素里面的文本内容;
th:任意html属性: 替换原生属性的值
在这里插入图片描述
2)表达式

基本语法:
${…}:获取变量值(OGNL)

  1. 获取对象的属性、调用方法
  2. 使用内置的基本对象:

可以使用ctx,vars,locale,request,response,session,servletContext内置对象

ctx : 上下文对象。
vars : 上下文变量。
locale: 上下文的语言环境。
request:(仅在web上下文)的 HttpServletRequest 对象。
response:(仅在web上下文)的 HttpServletResponse 对象。
session:(仅在web上下文)的 HttpSession 对象。
servletContext:(仅在web上下文)的 ServletContext 对象
3. 内置的一些工具对象:

可以使用dates,numbers,strings,objects,arrays,lists,sets,maps等内置方法

strings: 字符串格式化方法,常用的Java方法它都有。比如:equals,equalsIgnoreCase,length,trim,toUpperCase,toLowerCase,indexOf,substring,replace,startsWith,endsWith,contains,containsIgnoreCase等
numbers: 数值格式化方法,常用的方法有:formatDecimal等
bools: 布尔方法,常用的方法有:isTrue,isFalse等
arrays: 数组方法,常用的方法有:toArray,length,isEmpty,contains,containsAll等
lists,sets: 集合方法,常用的方法有:toList,size,isEmpty,contains,containsAll,sort等
maps: 对象方法,常用的方法有:size,isEmpty,containsKey,containsValue等
dates: 日期方法,常用的方法有:format,year,month,hour,createNow等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值