笔者前几周一直在学习FreeMarker,入门FreeMarker是相当容易的,其官网http://freemarker.org/有详细的中文资料,介绍了FreeMarker的各种特性。
Java Object + ftl template==>html是FreeMarker应用较多的场景,其将来自Java对象的数据根据模版生成预期的html文本信息。FreeMarker被广泛应用于web服务端html生成过程,包括目前广泛使用的Struts2 支持使用FreeMarker完成视图层的展示,Struts2作为web mvc开源Java框架,目前有着广泛的用户。当然FreeMarker生成的不一定非得是html,其目标是生成文本信息。随着FreeMarker的广泛使用,其支持将XML作为输入的数据模型,按照模版生成相应的文本信息,其实想一想这很容易做到,将XML读入转换成DOM Java对象,然后对该Java对象进行包装,即可采用表达式的方式访问来自XML的数据。这里不得不提一下FreeMarker支持对非普通的Java bean的对象包装(object wrapper),从而包装后的效果是可以在模版中使用表达式的方式访问数据,从而生成文本信息。