Java小记08— 什么是模板引擎?常见的模板引擎有哪些?Thymeleaf的常用指令介绍。

模板引擎的基本概念和常见的模板引擎

概念

模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的文档。

简单的说就是,我们有数据和HTML这类超文本的文件,现在我们想让数据动态地加载到这类文件同时他俩是分开的,我们就需要模板引擎。如图1

图1. 模板引擎的作用

好处:模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。 通过模板引擎,我们甚至可以在一个团队中更具体地担任角色,实现分布式管理。前端地人可以只写前端,后端的人也需要考虑数据的逻辑,最后加载到页面中。

常见的模板引擎以及优缺点

Jsp:

优点:

1、功能强大,可以写java代码

2、支持jsp标签(jsp tag)

3、支持表达式语言(el表达式,jstl语法)

4、官方标准,用户群广,丰富的第三方jsp标签库

5、性能良好。jsp编译成class文件执行,有很好的性能表现

缺点:

jsp没有明显缺点,由于可以编写java代码,如使用不当容易破坏结构。

velocity:是较早出现的用于代替jsp的模板语言

优点:

1、不能编写java代码,可以实现严格的mvc分离

2、性能良好,据说比jsp性能还要好些

3、使用表达式语言,据说jsp的表达式语言就是学velocity的

缺点:

1、不是官方标准

2、用户群体和第三方标签库没有jsp多。

3、对jsp标签支持不够好

4、已经很久很久没有维护了。

Freemarker

优点:

1、不能编写java代码,可以实现严格的mvc分离

2、性能非常不错

3、对jsp标签支持良好

4、内置大量常用功能,使用非常方便

5、宏定义(类似jsp标签)非常方便

6、使用表达式语言

缺点:

1、不是官方标准

2、用户群体和第三方标签库没有jsp多

总结:以上三种模板引擎,除了JSP以外,其它两个都有致命的缺点比如不再维护,非官方标准等。因此velocityFreemarker 我是十分不推荐的,如果你不是从事开发模板引擎的工作,我认为你可以使用JSP,因为它官方且几乎没缺点,但Java代码是和前端代码混合在一起,耦合也会导致不好维护,因此,我推荐使用这个模板引擎:Thymeleaf

Thymeleaf的概念和常用命令

概念:Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎•Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。

特点

动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。

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

多方言支持:Thymeleaf 提供spring标准方言和一个与SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

与SpringBoot完美整合:SpringBoot提供了Thymeleaf的默认配置,并且为Thymeleaf设置了视图解析器,我们可以像以前操作jsp一样来操作Thymeleaf。代码几乎没有任何区别,就是在模板语法上有区别。

从以上特点可以看出,Thymeleaf是属于官方支持的模板引擎,同时完美契合现在流行的Spring框架,因为作为一个初学Java框架的人,我认为它是你的Best Choice。

常用命令:

图2 Thymeleaf的常用命令

图2有Thymeleaf的常用命令。需要注意的是,我们需要在每个HTML文件的头部标注这个代码:

<html xmlns:th="http://www.thymeleaf.org" >

用这个属性去声明这个文件是用Thymeleaf模板引擎加载的。

并且,Thymeleaf还有自己的内置对象,这些对象带了很多有用的方法比如处理小数和日期等等。

总结:

Thymeleaf是一个值得学习的模板引擎,但是同时不代表它就是最优秀的模板引擎,我认为Thymeleaf的使用要看公司以及项目的规模,如果因为前后端分离强行让每个人只做前端或者后端,有时也会失去效率,同时也很考验团队默契,因为一旦数据结构负载,在前端不好加载,会带来很多麻烦。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值