005集成thymeleaf

目录

1.thymeleaf是什么

2.Thymeleaf可以处理什么样的模板?

3.哪里可以查看thymeleaf文档​​​​​​​

4.集成thymeleaf

4.1. 编写第一个thymeleaf程序

4.2.1. 引入相关依赖

4.2.2. 编写controller

4.2.3. 编写Thymeleaf页面

4.2.4. 程序验证

4.2. Thymeleaf配置介绍

4.3. Thymeleaf常用标签

5.总结


1.thymeleaf是什么

Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本。

Thymeleaf的主要目标是提供一种优雅且高度维护的模板创建方式。为了实现这一目标,它以自然模板的概念为基础,以不影响模板用作设计原型的方式将其逻辑注入模板文件中。

2.Thymeleaf可以处理什么样的模板?

开箱即用的Thymeleaf允许您处理六种模板,HTML,XML,TEXT,JAVASCRIPT,CSS,RAW

3.哪里可以查看thymeleaf文档

Tutorial: Using Thymeleaf

4.集成thymeleaf

4.1. 编写第一个thymeleaf程序

4.2.1. 引入相关依赖

<!-- SpringBoot集成thymeleaf模板 -->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

4.2.2. 编写controller

在com.zhuhuo.demo.controller包下创建一个名为DemoController类并实现helloThymeleaf方法

@Controller
public class DemoController {
​
   @GetMapping(value = "/hello")
   public String helloThymeleaf(ModelMap modelMap) {
       modelMap.put("test", "test");
       return "index";
  }
​
}

4.2.3. 编写Thymeleaf页面

在resource文件夹下创建templates文件夹

在templates文件夹下创建index.html

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
 <span th:text="${test}">测试</span>
</body>
</html>

4.2.4. 程序验证

待补充

4.2. Thymeleaf配置介绍

springboot在集成thymeleaf的时候默认为我们提供了很多配置信息ThymeleafProperties,如果默认配置信息不能满足我们的业务需求,可以自行调整修改,一起看下默认给我们提供了哪些配置

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {

 //默认编码格式
private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;

 //默认前缀,文件存储的前缀
public static final String DEFAULT_PREFIX = "classpath:/templates/";
​
 //默认文件后缀格式
public static final String DEFAULT_SUFFIX = ".html";
​
 //在渲染模板之前检查模板是否存在 默认为true 检查
private boolean checkTemplate = true;
​
//检查模板位置是否存在 默认为true 检查
private boolean checkTemplateLocation = true;
​
 //在构建URL时,为查看名称而预先添加的前缀
private String prefix = DEFAULT_PREFIX;
 
 //生成URL时附加到视图名称的后缀
private String suffix = DEFAULT_SUFFIX;
​
 //要应用于模板的模板模式 
private String mode = "HTML";
​
 // 模版文件编码格式
private Charset encoding = DEFAULT_ENCODING;
​
 // 是否启用模版缓存 一般在开发阶段我们是禁用缓存已保障程序的最新的可以及时查看,在生产环境开启缓存
 // 减小服务端压力提升客户体验度
private boolean cache = true;
​
/**
 * 链中模板解析程序的顺序。默认情况下,模板解析程序位于链中的第一个。订单从1开始,只有在定义了其他 
  * TemplateResolver bean的情况下才应进行设置
 */
private Integer templateResolverOrder;
​
//可以解析的视图名称(允许使用模式)的逗号分隔列表
private String[] viewNames;
​
//应从解析中排除的视图名称(允许模式)的逗号分隔列表。
private String[] excludedViewNames;
​
//在SpringEL表达式中启用SpringEL编译器
private boolean enableSpringElCompiler;
​
/**
 * 是否应在checkbox元素本身之前呈现充当复选框标记的隐藏表单输入 默认为false
 */
private boolean renderHiddenMarkersBeforeCheckboxes = false;
​
 //是否为Web框架启用Thymelaf视图解析 默认为true
private boolean enabled = true;
​
private final Servlet servlet = new Servlet();
​
private final Reactive reactive = new Reactive();
​
​
public static class Servlet {
   //写入HTTP响应的内容类型值
private MimeType contentType = MimeType.valueOf("text/html");
​
   //Thymelaf是否应该尽快开始写入部分输出,或者缓冲直到模板处理完成
private boolean producePartialOutputWhileProcessing = true;
}
​
public static class Reactive {
​
   //用于写入响应的数据缓冲区的最大大小。如果设置了此选项,则默认情况下模板将在CHUNKED模式下执行
private DataSize maxChunkSize = DataSize.ofBytes(0);
​
   //视图技术支持的媒体类型
private List<MediaType> mediaTypes;
private String[] fullModeViewNames;
private String[] chunkedModeViewNames;
}
​
}

4.3. Thymeleaf常用标签

序号描述属性
1片段th:insert th:replace
2迭代th:each
3条件判断th:if th:unless th:switch th:case
4局部变量th:object th:with
5一般属性修改th:attr th:attrprepend th:attrappend
6特定属性修改th:value th:href th:src ...
7文本th:text th:utext
8片段规范th:fragment
9片段移除th:remove

5.总结

以上是对thymeleaf的一个简单的集成,在本章节不对thymeleaf做太深入的讲解,后面会专门提出一个专题来讲解thymeleaf相关内容,例如对国际化的支持,模版布局,模版解析器等等.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值