模板引擎:第二章:Thymeleaf

Thymeleaf模板引擎简介 themeaf相关知识总结 阅读详情

Thymeleaf 是个什么?

Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP。

它有什么优势?我们为什么要用它?

1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。

2.可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

3.可以快速的实现表单绑定、属性编辑器、国际化等功能。

我们怎么快速的进行简单的使用?

1.简单的 Thymeleaf 应用

   1)只需加入thymeleaf-2.1.4.RELEASE.jar(http://www.thymeleaf.org/download.html )包,若用maven,则加入如下配置

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.1.4</version>
</dependency>

   2)然后增加头文件(如下)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">

      3)就可以用th标签动态替换掉静态数据了。后台传出的message会将静态数据“Red Chair”替换掉,若访问静态页面,则显示数据“Red Chair”。

<td th:text="${message}">Red Chair</td>

实例演示:

访问静态页面

 

          4)使用循环

实例演示:

controller:

    @RequestMapping("index")
    public String replace(ModelMap map){
        map.put("hello","hello thymeleaf !");

        List<String> list = new ArrayList<>();
        List<String> list2 = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add("元素"+i);
            list2.add("成员"+i);
        }
        map.put("list",list);
        map.put("list2",list2);
        return "index";
    }

index页面:

<body>
    <!-- 取值 -->
    <div th:text="${hello}">hello html !</div>

    <!-- 循环 -->
    <div th:each="str:${list}">
        <div th:text="${str}"></div>
    </div>
    <div th:each="str:${list2}" th:text="${str}"></div>
</body>

结果:

hello thymeleaf !
元素0
元素1
元素2
元素3
元素4
成员0
成员1
成员2
成员3
成员4

说明:它循环主要看你把循环元素放在那

          5)判断

实例演示:

index页面:

    <!-- 判断 -->
    <div th:if="1==1">该元素存在</div>
    <div th:text="(1==0)?'该元素存在':'该元素不存在'"></div>

结果:

该元素存在
该元素不存在

         6)页面引入

实例演示:

第一种方式:

index页面:

<!-- 页面引入 -->
<div th:include="a"></div>

a页面:

<!DOCTYPE html>
<html lang="en"  xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
        被引入的页面a
        <div th:fragment="b">
            被引入的页面a的片段b
        </div>
</body>
</html>

结果:

被引入的页面a
被引入的页面a的片段b 

 第二种方式:

<!-- 页面引入 -->
<div th:include="a::b"></div>

a页面一样,结果:

被引入的页面a的片段b 

           7)函数调用

实例演示:

index页面:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


    <!-- 循环 -->
    <div th:each="str:${list}">
        <div th:text="${str}"></div>
    </div>
    <div th:each="str:${list2}" th:text="${str}"></div>
    <!-- 判断 -->
    <div th:if="1==1">该元素存在</div>
    <div th:text="(1==0)?'该元素存在':'该元素不存在'"></div>
    <!-- 页面引入 -->
    <div th:include="a::b"></div>
    
    <!-- 取值 -->
    <div th:text="${hello}">hello html !</div>
    <!-- js函数调用 -->
    <!--    函数调用    -->
    <a th:href="'javascript:a(\''+${hello}+'\');'">调用函数测试</a>
    <script language="JavaScript">
        function a(hello) {
            alert(hello);
        }
    </script>
</body>
</html>

controller:

    @RequestMapping("index")
    public String replace(ModelMap map){
        map.put("hello","hello thymeleaf !");

        List<String> list = new ArrayList<>();
        List<String> list2 = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            list.add("元素"+i);
            list2.add("成员"+i);
        }
        map.put("list",list);
        map.put("list2",list2);
        return "index";
    }

结果:

            8)其他情况

实例演示:

第一种情况:userInfos有值的情况

controller:

        List<UserInfo> userInfos = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            UserInfo userInfo = new UserInfo();
            userInfo.setName("小"+i);
            userInfos.add(userInfo);
        }
        map.put("userInfos",userInfos);

index页面:

<!-- 其他情况 -->
<div th:each="user:${userInfos}" th:text="${user.name}" ></div>

结果:

小0
小1
小2
小3
小4

第二种情况:userInfos没有值的情况

controller:

        List<UserInfo> userInfos = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            UserInfo userInfo = new UserInfo();
            userInfo.setName("小"+i);
            userInfos.add(userInfo);
        }
        map.put("userInfos",null);

页面不变,结果无,没有输出

第三种情况:

controller:

        UserInfo userInfo = new UserInfo();
        userInfo.setName("老王");
        map.put("userInfo",null);

index页面:

<div th:text="${userInfo.name}" ></div>

这种情况会报空指针异常。

怎么解决这个问题?

index页面:

<div th:text="${userInfo?.name}" ></div>

<!-- thymeleaf中如果使用了数字格式化函数,数字不允许为空,否则会报类型转化错误-->

不为空则调,为空不调,也不报错。

 

Freemarker入门小DEMO

工程引入依赖

<dependency>

<groupId>org.freemarker</groupId>

<artifactId>freemarker</artifactId>

<version>2.3.23</version>

</dependency>  

 

 

创建模板文件

模板文件中四种元素

  1、文本,直接输出的部分
  2、注释,即<#--...-->格式不会输出
  3、插值(Interpolation):即${..}部分,将使用数据模型中的部分替代输出
  4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。

我们现在就创建一个简单的创建模板文件test.ftl

<html>

<head>

<meta charset="utf-8">

<title>Freemarker入门小DEMO </title>

</head>

<body>

<#--我只是一个注释,我不会有任何输出  -->

${name},你好。${message}

</body>

</html>

这里有文本、插值和注释

生成文件

使用步骤:

第一步:创建一个 Configuration 对象,直接 new 一个对象。构造方法的参数就是 freemarker的版本号。

第二步:设置模板文件所在的路径。

第三步:设置模板文件使用的字符集。一般就是 utf-8.

第四步:加载一个模板,创建一个模板对象。

第五步:创建一个模板使用的数据集,可以是 pojo 也可以是 map。一般是 Map。

第六步:创建一个 Writer 对象,一般创建一 FileWriter 对象,指定生成的文件名。

第七步:调用模板对象的 process 方法输出文件。

第八步:关闭流

代码:

创建Test类 main方法如下:

     //1.创建配置类

Configuration configuration=new Configuration(Configuration.getVersion());

//2.设置模板所在的目录

configuration.setDirectoryForTemplateLoading(new File("D:/work/freemarkerDemo/src/main/resources/"));

//3.设置字符集

configuration.setDefaultEncoding("utf-8");

//4.加载模板

Template template = configuration.getTemplate("test.ftl");

//5.创建数据模型

Map map=new HashMap();

map.put("name", "张三 ");

map.put("message", "欢迎来到神奇的世界!");

//6.创建Writer对象

Writer out =new FileWriter(new File("d:\\test.html"));

//7.输出

template.process(map, out);

//8.关闭Writer对象

out.close();

 

执行后,在D盘根目录即可看到生成的test.html ,打开看看

 

【Spring Boot】Thymeleaf模板引擎 — Thymeleaf入门 Thymeleaf是一款非常优秀的服务器端页面模板引擎,适用于Web和独立环境,具有丰富的标签语言和函数,能够处理HTML、XML、JavaScript甚至文本。Thymeleaf相较于其他模板引擎更加优雅。它强调自然模板化(允许模板成为工作原型,而Velocity、FreeMarker模板不允许这样做),所以它的语法更干净,更符合当前Web开发的趋势。 阅读详情

相关推荐

第五章 PCIe介绍 5.1-5.7

为什么SSD要用PCIe接口?因为它快,比SATA快。通道,PCIe最多可以有32个通道。两个设备之间的PCIe连接,叫做一个Link。如下图,设备A和设备B是个双向连接,两个PCIe设备之间,有专门的发送和接收通道,数据可以同时往两个方向传输,PCIe Spec称这种工作模式为,可以理解为。和PCIe一样,SATA有独立的发送和接收通道。但与PCIe工作模式不一样,同一时间,SATA只有一条通道可以进行数据传输。这种工作模式称为。与SATA单通道不同,PCIe连接可以通过增加通道数扩展带宽。

fengbaobaola的博客 2970

thymeleaf 使用详解

thymeleaf介绍 变量表达式 选择(星号)表达式 文字国际化表达式 URL表达式 几种常用的使用方法 引用js的坑 thymeleaf介绍 简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: Thymeleaf 在有网络和无网络的环境下皆可运行,即它可...

陈袁的博客 7489

Tesla V100 在 Windows 下的驱动选择与模式切换实战

本文详细解析了Tesla V100专业计算卡在Windows系统下的驱动安装与模式切换实战。针对设备管理器识别但任务管理器“隐身”的常见问题,文章指出其默认TCC模式为纯计算设计,并指导用户正确选择数据中心或GRID驱动。核心在于通过注册表修改或驱动选择,在高效的TCC模式与便于监控的WDDM模式间切换,同时提供了nvidia-smi命令行监控与AI框架测试等稳定使用方案。

weixin_29247219的博客 1812

thymeleaf的使用技巧

1、thymeleaf处理时间 <span th:text="${#dates.format(article.getArticleTime(), 'yyyy-MM-dd')}">2017-02-23</span> 注:article是从后台model中传过来的对象,getArticleTime()是获取它的时间 2、thymeleaf的@{}中引用${} 我们可以用来动态的传递请求的参数 <li class="text"><a th:href="@{'/artic

cxycxytony的博客 2294

Vivado工程备份实战:两种方法快速迁移Block Design(附路径避坑指南)

本文详细介绍了Vivado工程中Block Design(BD)备份与迁移的两种核心方法:文件夹直接复制法与TCL脚本生成法。针对FPGA工程师在项目迁移或团队协作时常见的IP丢失、路径报错等问题,提供了从原理到实战的操作指南与路径避坑策略,确保设计可复现与高效协作。

pz890123的博客 1312

使用 C# 实现大华监控摄像头的控制与数据处理

本文介绍了使用C#调用大华SDK(DHNetSDK.dll)开发监控系统的方法。主要内容包括:开发准备、DLL引用设置、SDK初始化与设备登录、视频预览窗口嵌入、云台控制、抓图录像等核心功能实现。通过P/Invoke技术封装SDK接口,开发者可以快速构建具有视频监控、设备控制功能的C#应用程序。文中还提供了代码示例、常见问题解决方案,以及视频帧智能分析的扩展建议,为开发大华监控系统的二次应用提供了完整的技术指南。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1285

8、SpringBoot:thymeleaf的使用技巧

1、thymeleaf的@{}中引用${} 我们可以用来动态的传递请求的参数 <a class="btn" th:href="@{'/teacher/tea/' + ${teacher.getTeacherId()}}">个人简介</a> 同样thymeleaf也可以用来动态的传递请求的参数(如:可以通过+1或-1来实现文章上一篇下一篇) <li class="text"><a th:href="@{'/article/byId/'+${article.get

Surplus.的博客 413

Jaspersoft Studio 6.20.0 免注册安装指南(附下载链接)

本文提供了Jaspersoft Studio 6.20.0社区版的免注册安装详细指南。文章介绍了绕过官网注册获取安装包的多种可靠途径,并逐步详解了从启动安装器到首次运行的全过程,帮助用户快速完成安装与基础配置,高效开启报表设计工作。

mars5的博客 1697

SpringBoot之Thymeleaf语法

SpringBoot之Thymeleaf语法 1.导入Thymeleaf的starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 2.Thymeleaf属性配置 @ConfigurationPropertie.

疯狂的菜鸡 425

制作 img系统镜像的详细方法

      I.MX6开发板目前支持从TF卡和eMMC启动,启动时,由于各个不同的启动文件对路径有不同的要求,例如uboot文件要求位于启动设备的某个块,dtb文件要求在FAT分区上,文件系统要求在Linux分区上,基于此,我们目前采用将映像制作成img文件的方式,这样可以更简单完成对启动卡的制作。 关于如何制作img,方法如下:方法一  Windows下面利用Win32工具1.   准备我司提供...

armkits的博客 4万+

【STM32实物】基于STM32+ESP32+手机APP设计的智能宠物喂食系统

本文以STM32单片机为主控MCU,配有压力传感器、温湿度传感器、光照强度传感器、蜂鸣器等,设计了一款可以远程控制的宠物智能喂食系统。用户可以通过APP下达指令,控制宠物的喂食。每天可以根据设置的数据进行精准喂食,成本相对较低的宠物喂食装置。该装置使用步进电机控制投食仓门的开闭,通过压力传感器和时钟系统控制每日的投喂量和投喂时间。每次投食后蜂鸣器会提醒宠物进食,树立每日定点进食的习惯。经测试得出,该设备确实能实现每日定时定量投喂。系统整体运行顺畅,所有预期功能得以实现。它非常适合解决宠物主人不在家时影响宠物

嵌入式阿齐Archie 2万+

FreeMarker Thymeleaf - 前端模板引擎

概述 FreeMarker是一种模板引擎(基于模板和要改变的数据),主要用于MVC中的view层,生成html展示数据给客户端,可以完全替代jsp 它不是面向最终用户的,而是一个Java类库,是一款可以嵌入所开发产品的组件,后缀通常是ftl 它是一个基于模板生成文本输出的通用工具,使用纯Java编写,模板中没有业务逻辑,外部java程序通过数据库操作等生成数据传入template中,然后输出页面。它能够生成各种文本:HTML、XML、JSP、RTF、Java源代码等等,而且不需要Servlet环境,并且可

weixin_45453240的博客 849

Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。

2608

微服务 第二章:SpringBoot 创建web项目(用Thymeleaf模板引擎)

springboot内部对jsp的支持并不是特别理想,而springboot推荐的视图是Thymeleaf。Thymeleaf在其他随笔中有所讲述,这里不再重复。 码云地址:https://gitee.com/yaohuiqin/SpringBootDemo 方法一:springboot的非web项目改成web项目 1、添加maven   在第一章的代码基础上,添加mave...

weixin_30859423的博客 227

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

模板引擎 - Thymeleaf

模板引擎 - Thymeleaf1. 简单介绍模板引擎2. 模板引擎与 Thymeleaf 关系3. 使用流程流程一:通过 maven 引入依赖流程二:创建 HTML 模板文件流程三:编写 servlet 代码流程四:部署程序4. Thymeleaf 模板语法常用命令及功能5. 理解为什么只创建一个模板引擎实例 1. 简单介绍模板引擎 模板引擎?你可能第一次听说模板引擎,估计你会禁不住想问:什么是模板引擎? 模板引擎(这里特指用于Web开发的模板引擎),是为了使用户界面与业务数据(内容)分离而产生的,

m0_52083255的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【SpringBoot】| Thymeleaf 模板引擎

【SpringBoot】| Thymeleaf 模板引擎

m0_61933976的博客 6855

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringBoot-web开发(三): 模板引擎Thymeleaf

目录1. 引入2. 什么是模板引擎?3. Thymeleaf1. 简介2. 导入Thymeleaf3. 使用Thymeleaf4. 简单测试5. thymeleaf语法1、th属性2、标准表达式语法 本文主要介绍SpringBoot给我们推荐的Thymeleaf模板引擎,这是一个高级语言的模板引擎,语法更简单且功能更强大 参考:https://www.jianshu.com/p/7c27c50f24ec 1. 引入 在以前,我们通常将前端交给我们的html页面转成jsp页面,通过jsp轻松实现数据.

欢迎来到 Baret-H 的博客 8475

整合模板引擎-Thymeleaf

1、视图解析:Spring Boot 默认不支持 JSP,但确实可以通过额外配置用上 JSP。不过强行用 JSP 已经脱离了 Spring Boot 易配置、快速开发的初衷。如果可能,应避免使用 JSP。所以需要引入第三方模板引擎技术实现页面渲染。2、Spring Boot 支持 FreeMarker、Groovy、Thymeleaf 和 Mustache 四种模板解析引擎,并对以上模板引擎做了自动配置支持。3、我们选择 Thymeleaf。

逍遥人世欢 2914

【❤️SpringBoot模板引擎❤️】——Thymeleaf

目录 模板引擎简介 引入Thymeleaf模板引擎 分析Thymeleaf模板引擎 测试Thymeleaf模板引擎 Thymeleaf入门: thymeleaf语法学习 练习测试 总结: 模板引擎简介 jsp有着强大的功能,能查出一些数据转发到JSP页面以后,我们可以用jsp轻松实现数据的显示及交互等,包括能写Java代码。但是,SpringBoot首先是以jar的方式,不是war;其次我们的tomcat是嵌入式的,所以现在默认不支持jsp。 如果我们直接用纯静态页面方式,必然会...

龍弟-idea的博客 6308

thymeleaf模板引擎

1. Thymeleaf 是什么?简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP。从代码层次上讲:Thymeleaf是一个java类库,他是一个xml/xhtml/html5的模板引擎,可以作为mvc的web应用的view层。2. 为什么要使用Thymeleaf?使用jsp的弊端项目目录结构繁琐页面不简洁jsp内置错误页面不能覆盖springboot默认的错误页面只能打成war不能打成jar。

2301_79438104的博客 1222

Web开发:Thymeleaf模板引擎

模板引擎是为了使用户界面与业务数据分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。Thymeleaf是一个流行的现代服务器端Java模板引擎,它专门设计用于Web和独立环境中的应用程序。它允许开发者以清晰和直观的方式将服务器端的数据与HTML、XML、JavaScript、CSS以及纯文本等模板文件结合起来。Thymeleaf的最大特点之一是它的“自然模板”技术,这意味着开发者可以编写标准的HTML代码,并通过Thymeleaf特有的属性和表达式(如th:text。

Bisikl的博客 5721

thymeleaf 模板引擎

thymeleaf 简介 ​ SpringBoot默认不支持JSP,因为jsp相对于一些模板引擎,性能都比较低,官方推荐使用thymeleaf。 ​ Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML、XML、JavaScript、CSS和文本,在Web和非Web环境下都可以正常工作。 如果实在想使用jsp,参考https://blog.csdn.net/a1405/article/details/100037062 HelloWorld 导入依赖 ​ 选择web和thymel

好好学习,天天向上 5072

【模板引擎】Thymeleaf 介绍及使用

文章目录1. 服务器生成动态页面的方式1.1 客户端渲染(前后端分离)1.2 服务器渲染(使用模板引擎)2. 模板引擎2.1 模板引擎介绍2.2 模板引擎的作用2.3 常见的模板引擎3. Thymeleaf3.1 Thymeleaf 介绍3.2 Thymeleaf 语法规则3.2.1 标准表达式语法3.2.2 th 属性3.3 Thymeleaf 使用流程 1. 服务器生成动态页面的方式 这里介绍两种常用的服务器生成动态页面的方式:服务器渲染和客户端渲染 渲染就是把数据和页面结合起来 1.1 客户端渲染

吞吞吐吐大魔王的博客 2529

JavaWeb~模板引擎Thymeleaf总结

文章目录模板引擎ThymeleafThymeleaf使用流程三级目录 模板引擎Thymeleaf Thymeleaf使用流程 1.先编写HTML模板文件,放到指定的目录中 2.创建Servlet代码 1)先初始化一个TemplateEngine实例 2)创建一个ServletContextTemplateResolver实例,并且指定要加载的模板文件的路径以及字符集 3)将需要和模板引擎关联的变量 使用WebContext来进行表示 4)进行渲染 TemplateEngine 有一个process方法来做这

zxc的博客 2558

Thymeleaf模板引擎

​ Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等。它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。Thymeleaf最大的特点是能够正确显示模板页面,而不需要启动整个Web应用。Thymeleaf 模板引擎的特点:动静结合:Thymeleaf 既可以直接使用浏览器打开,查看页面的静态效果,也可以通过 Web 应用程序进行访问,查看动态页面效果。开箱即用。

互联网底层民工的博客 2468
上一篇: 模板引擎:第一章:FreeMarker
下一篇: Redis数据结构存储系统:第二章:如何使用
Java程序员廖志伟
Java程序员廖志伟 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 2万+粉丝 1902原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序员廖志伟

赏我包辣条呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值