005集成thymeleaf
标签: 005集成thymeleaf Java博客 51CTO博客
2023-07-23 18:24:16 128浏览
1.thymeleaf是什么
Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本。
Thymeleaf的主要目标是提供一种优雅且高度维护的模板创建方式。为了实现这一目标,它以自然模板的概念为基础,以不影响模板用作设计原型的方式将其逻辑注入模板文件中。
2.Thymeleaf可以处理什么样的模板?
开箱即用的Thymeleaf允许您处理六种模板,HTML,XML,TEXT,JAVASCRIPT,CSS,RAW
3.哪里可以查看thymeleaf文档
https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html
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;
}
}
配置调整测试,以文件存放地址为案例,修改配置信息,创建testview文件夹,把index文件复制到testview下
spring:
thymeleaf:
prefix: classpath:/testview/
修改控制层
@GetMapping(value = "/hello")
public String hello(ModelMap map){
map.put("test","test view");
return "index";
}
4.3. Thymeleaf常用标签
序号 |
描述 |
属性 |
1 |
片段 |
|
2 |
迭代 |
|
3 |
条件判断 |
|
4 |
局部变量 |
|
5 |
一般属性修改 |
|
6 |
特定属性修改 |
|
7 |
文本 |
|
8 |
片段规范 |
|
9 |
片段移除 |
|
5.总结
以上是对thymeleaf的一个简单的集成,在本章节不对thymeleaf做太深入的讲解,后面会专门提出一个专题来讲解thymeleaf相关内容,例如对国际化的支持,模版布局,模版解析器等等.
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
展开评论