FMPP - FreeMarker-based PreProcessor



(返回www.opendocs.net)

介绍

FreeMarker是个“模版引擎”,所谓模版引擎,就是一段文本,其中包含一些可变的部分,这些可变部分用特殊符号标示了,这就是所谓的模版。另外有个数据源,包含了模版中的可变的部分。所谓引擎,就是将模版中的特殊符号标示出的可变部分替换成数据源中相应的数据。譬如动态网页就是模版引擎的很好应用,网页是HTML的文本文件,其中包含的一些信息,如产品列表,是可变的。HTML网页定义了信息显示格式,产品列表通常存储在公司的数据库中,将来自数据库的产品信息合并到HTML网页中,这就是动态网页。

JSP和ASP对动态网页的解决办法是在HTML中嵌入程序代码,由程序代码负责“拽”出数据。Freemarker的解决办法是,由外部程序取得数据,再“推”入HTML网页。Freemarker的模版仅仅是定义格式,不含程序,不带智能。而JSP和ASP的模版可以像程序代码一样做任何事情。这样的好处是Freemarker的模版强制分开了负责信息显示的View和负责逻辑运算的程序代码(Model和Controller)。

FMPP是个“拉”数据的东东,它从各种数据源,如CSV文件,数据库,或者它自己定义的TDD格式的文件中读取数据,合并到Freemarker的模版中,生成想要的最终文件。FMPP的一个应用是“网页预生成”。譬如一些新闻类的门户网站,它的新闻更新通常不需要“实时”,可能一天或一周更新一次。这种场合,公司的后台编辑系统可以定期调用FMPP生成静态的新闻网页,上传到网站上。这样做的好处是,大幅度提高网站性能,因为静态网页性能比动态网页高得多。凡是不需要“实时”更新的“动态网页”,FMPP都有用武之地。

Freemarker官网:http://freemarker.org

Fmpp官网:http://fmpp.sourceforge.net/

FMPP is a general-purpose text file preprocessor tool that uses FreeMarker templates. It is particularly designed for HTML preprocessor, to generate complete (static) homepages: directory structure that contains HTML-s, image files, etc. But of course it can be used to generate source code or whatever text files. FMPP is extendable with Java classes to pull data from any data sources (database, etc.) and embed the data into the generated files.

文档

• FMPP Documentation 0.9.13

链接

• http://fmpp.sourceforge.net/
• http://sourceforge.net/projects/fmpp//
• http://download.www.opendocs.net/fmpp/