什么是模板引擎?常见的模板引擎有哪些?thymeleaf的常用指令介绍。

什么是模板引擎?

模板引擎是为了让用户显示界面和业务数据内容分离而产生的,可以生成特定形式的文档,常用的格式有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
<!--aihao 这是平时的写法 -->
< input type = "checkbox" name = "aihao" checked />< span > 看书 </ span >
< input type = "checkbox" name = "aihao" checked = "checked" />< span > 打篮球 </ span >
<!-- 后台控制器传递了一个:键: isAihao true -->
<!--aihao 可以被后台控制 -->
< input type = "checkbox" name = "aihao" th:checked = "${isAihao}" />< span > 吃饭 </ span >
< input type = "checkbox" name = "aihao" th:checked = "${isAihao}" />< span > 睡觉 </ span >
< input type = "checkbox" name = "aihao" th:checked = "!${isAihao}" />< span > 打豆豆 </ span >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值