当前位置:网站首页>什么是模板引擎?常见的模板引擎有哪些?thymeleaf的常用指令介绍。
什么是模板引擎?常见的模板引擎有哪些?thymeleaf的常用指令介绍。
2022-08-09 14:51:00 【Ran959】
什么是模板引擎?
模板引擎是为了让用户显示界面和业务数据内容分离而产生的,可以生成特定形式的文档,常用的格式有HTML、XML以及其他格式的文档。

常见的模板引擎 :
jsp、freemarker、velocity、themeleaf
(1)jsp 优点:1>>功能强大,可以写java代码,因此jsp代码可以跨平台。
2>>支持jsp标签、支持表达式语言
3>>性能良好,jsp文件会编译成class文件执行,有很好的性能表现
4>>官方标准,用户群广,丰富的第三方jsp标签库
缺点:调试难度高,因为是编译成class文件的,所以在报错时是class文件报错不是jsp。已经很少有公司使用了
(2)freemarker 优点:1>>不能编写java代码,可以实现严格的MVC分离。
2>>对jsp标签支持良好
3>>内置大量的常用功能、宏定义(类似于jsp标签),使用非常简单
4>>使用表达式语言
缺点:不是官方标准,第三方标签库不如jsp多
(3)velocity 优点:1>>不能编写java代码,可以实现严格的MVC分离。
2>>其官方好像表示比jsp功能还要好一些
3>>使用表达式语言,jsp的表达式语言可能就是学velocity的
缺点:1>>不是官方标准,第三方标签库不如jsp多
2>>对jsp标签支持不够好
3>>已经很久没有维护了
(4)thymeleaf:Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎。
Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和 Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的 自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。
优点 1>>动静结合:Thymeleaf 在有无网络上都可以运行,即可以浏览静态页面(忽略未定义的标签属性)也可以浏览动态页面(因为其支持HTML原型,利用标签的额外属性来达到模板+数据的展示)。
2>>开箱即用:它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。
3>>多方言支持:thymeleaf提供了spring标准方言和一个与SpringMVC完美集成的可选模块,快速实现表单绑定、属性编辑器、国际化等功能。
4>>与SpringBoot完美整合:SpringBoot提供了Thymeleaf的默认配置,并且为Thymeleaf设置了视图解析器,我们可以像以前操作jsp一样来操作Thymeleaf。代码几乎没有任何区别,就是在模板语法上有区别
缺点 :模板必须符合xml规范
thymeleaf的常用指令介绍:

Thymeleaf 标准⽅⾔还⽀持以下固定值布尔属性
th:readonly | th:hidden | th:autoplay |
th:checked | th:required | th:disabled |
th:selected |
边栏推荐
- .NET现代应用的产品设计 - DDD实践
- 看完腾讯大佬90天整理的“Redis深度笔记”,我直接当场膜拜
- redis6在centos7的安装
- Similar image detection method
- MySQl表的增删查改(聚合查询+联合查询)
- 6大论坛,30+技术干货议题,2022首届阿里巴巴开源开放周来了!
- Regular Expressions for Shell Programming
- 玩转云端 | 天翼云电脑的百变玩法
- OpenSSF's open source software risk assessment tool: Scorecards
- Two-dimensional array to realize the eight queens problem
猜你喜欢

【Qt5 + OpenGL】glPointSize(10); error: undefined reference to `__imp_glPointSize‘

What is the difference between the four common resistors?

易基因|作物育种:DNA甲基化在大豆优良品种培育中的作用研究成果

注解与反射

防汛添利器,数字技术筑起抗洪“大堤”

DSPE-PEG-Hydrazide, DSPE-PEG-HZ, Phospholipid-Polyethylene Glycol-Hydrazide MW: 1000

【原神】手机版原神下错版本不能登录怎么办?B服修改为官服

leetcode_jz

太厉害了!华为大牛终于把MySQL讲的明明白白(基础+优化+架构)

shell之函数和数组
随机推荐
【Qt5 + OpenGL】glPointSize(10); error: undefined reference to `__imp_glPointSize‘
【Database】Sqlserver如何定时备份数据库和定时清除
[DevOps] jekins configuration (2)
Analysis of select principle in golang
优化软件测试成本的 7 个步骤
【Qt】 No such slot...,No such signal
C语言程序设计笔记(浙大翁恺版) 第四周:循环
【胡扯】量子力学与单线程
Computer Graphics From Scratch - Chapter 5
SMI 与 Gateway API 的 GAMMA 倡议意味着什么?
【DevOps】jekinsBuild step ‘Execute shell‘ marked build as failure
【Message Center】Architecture Preparation
OpenSSF's open source software risk assessment tool: Scorecards
【LeetCode】1898. 可移除字符的最大数目
[Basic version] Integer addition, subtraction, multiplication and division calculator
C语言程序设计笔记(浙大翁恺版) 第一周:程序设计与C语言
WebShell简介
百度地图——地图找房功能
After reading the "Redis In-depth Notes" compiled by Tencent bosses in 90 days, I worshipped on the spot.
Anaconda3安装后无法启动,启动闪退 2020-9