FreeMarker、Velocity之前端模板特性比较

一、简介 
FreeMarker: 
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。 
所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位符部分的内容。 
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 文等。 
Velocity: 
Velocity 是一个基于java 的模板引擎(template engine). 它可以让视图的设计者在web 页面中引用java 代码中定义的数据对象和命令。从而使Web designers 和java 开发者依照MVC 思想(Model-View-Controller )开发系统,这意味着Web designers 只须将精力注用于良好表现力的视图外观设计,而Java程序员则只要关心着如何写出高效简洁的java 对象以实现业务逻辑—–Velocity 会将他们组装到一起.

二、功能区别

日期和数字的支持 
FreeMarker可以对任意数量的类型执行运算和比较,包括任意精度类型,而不仅仅是整数。 
FreeMarker可以比较和显示(格式化)日期/时间值。 
国际化 
FreeMarker可以基于各种各样的内置和自定义数字或者日期格式,来格式化数字区域或者日期地区时区等。 
循环处理 
FreeMarker支持退出循环 ,可以在内部循环体去访问外部循环的变量 
并且可以得知当前是否到了循环的结束位置 
支持模版级别的数组处理 
可以用[i]的语法来访问数组元素,可以获取到数组的长度 
内置数据类型的操作 
FreeMarker能提示模版中的拼写错误以及其他错误。当访问一个不存在的变量时,FreeMarker 在执行时会报错,并且支持通过配置来指定 FreeMarker 在碰到此类错误的行为,同时会在日志中记录此错误信息; 如果输入错误的指令,FreeMarker将抛出一个异常。 
更高级的文本输出工具 
支持所有的Java字符串转义如:\ b,\ t,\ n,\ f,\ r,\“,\’,\,也支持\ xXXXX用UNICODE代码指定字符。 
高级的空格清除 
FreeMarker 可以自动的删除一些多余的空格、跳格、换行等字符 
也支持提供指令来删除多余的空格 
与其他技术的集成 
提供JSP 标签库以便在 JSP 中嵌入 FreeMarker 模版 可以直接跟 Python 对象一起工作 
三、选型: 
纵观各大国内外博客文章,几乎清一色的倒向FreeMarker这边。除了使用标签的性能更高,更多的还是FreeMarker支持功能多,以及更多的框架支持吧。 
PS:1.5及以上版本的spring boot已经不支持velocity。 
四、 常见语法比对:

1.变量定义与赋值:
Freemarker:
<#assign x=”freemarker”>
Velocity:
<#set($x=”velocity”)>
2.逻辑运算符
FreeMarker和velocity一致:&& ;|| ; !
3.逻辑判断:
Freemarker:
<#if condition>…<#elseif condition>…<#else>…</#if>
<#switch value><#case refValue1>…<#break><#defalut></#switch>
Velocity:
if(condition)…#elseif(condition)…#else…#end
4.循环体
FreeMarker:
<#list list as item></#list>
Velocity:
#foreach($item in $list)
5.属性引用:
Freemarker和velocity一致,均为通过“.”来获取对象的属性值

五、 整体比对 
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值