1、 FreeMarker简介
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。
所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不一样的使用者给出的数据是不一样的。在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位符部分的内容。
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不只能够用做表现层的实现技术,并且还能够用于生成XML,JSP或Java 文等。程序员
2、 FreeMarker的优势和缺点
(一) FreeMarker的优势
1.使用FreeMarker的优势之一,能够完全的分离表现层和业务逻辑。
使用JSP 开发过程当中在页面中大量的存在业务逻辑的代码,使得页面内容凌乱,在后期大量的修改维护过程当中就变得很是困难。
FreeMarker根本不支持Java脚本代码。
FreeMarker的原理就是:模板+数据模型=输出 ,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而全部的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后建立的。
2.使用FreeMarker的优势之二,能够提升开发效率。
在咱们以往的开发中,使用的都是JSP 页面来展现数据的,即所谓的表现层。咱们都知道,JSP在第一次执行的时候须要转换成Servlet类,开发阶段进行功能调适时,须要频繁的修改JSP,每次修改都要编译和转换,那么试想一天中咱们浪费在程序编译的时间有多少。相对于JSP来讲,FreeMarker模板技术不存在编译和转换的问题,因此就不会存在上述问题。并且开发过程当中,咱们在没必要在等待界面设计开发人员完成页面原形后,咱们再来开发程序。
3.使用FreeMarker的优势之三,使得开发过程当中的人员分工更加明确。
以往用JSP展示数据时,做为程序员的咱们,并不熟悉界面设计技术,反之界面开发人员,也并不熟悉程序语言。对二者而言,交替性的工做自己就有难度。有时候稍有不慎,可能会将某个页面元素删除或去掉了某个程序符号,使得页面走样或程序错误,这样就须要双方相互沟通协做,解决出现的问题。有时候由于项目中的时间,任务量等因素的存在,可能这个工做就由一我的来完成,这样就可能加大某一方开发人员的工做量。
使用FreeMarker后,做为界面开发人员,只专心建立HTML文件、图像以及Web页面的其余可视化方面,不用理会数据;而程序开发人员则专一于系统实现,负责为页面准备要显示的数据。编程
(二)FreeMarker的缺点
1.使用FreeMarker的缺点之一,应用FreeMarker模板技术,在修改模板后,可能会看到已通过期的数据。如:生成静态的HTML页面后,若是一旦模板改变,而没有及时更新模板生成的HTML页面的话,用户看到的就是过时的数据。
2.使用FreeMarker的缺点之二,FreeMarker模板技术在应用过程当中,FreeMarker中的变量必需要赋值,若是不赋值,那么就会抛出异常。想避免错误就要应用if/elseif/else 指令进行判段,若是对每个变量都判断的话,那么则反而增长了编程的麻烦。
3.使用FreeMarker的缺点之三,FreeMarker的map限定key必须是string,其余数据类型没法操做
4.使用FreeMarker的缺点之四,FreeMarker不支持集群应用。为了编成的方便性,把序列化的东西都放到了Session中,如Session,request等,在开发的过程当中确实方便,但若是将应用放到集群中,就会出现错误。
本文转载自oecp社区http://www.oecp.cn/hi/hailang/blog/146spa