FreeMarker是一款模板引擎:即一种基于模板、用来生成输出文本(任何来自于HTML格式的文本用来自动生成源代码)的通用工具。它是为Java程序员提供的一个开发包,或者说是一个类库。它不是面向最终用户的,而是为程序员提供的一款可以嵌入他们所开发产品的应用程序。
FreeMarker实际上是被设计用来生成HTML页面,尤其是通过实现了基于MVC(Model View Controller,模型-视图-控制器)模式的Java Servlet应用程序。使用MVC模式的动态页面的设计构思使得你可以将前端设计师(编写HTML页面的人员)从程序员中分离出来。那么,所有人各司其职,发挥其最擅长的一面。网页设计师可以改写页面的显示效果而不受程序员编译代码的影响,因为应用程序的逻辑(这里是Java程序)和页面设计(这里是FreeMarker模板)已经被分开了。页面模板代码不会受到复杂程序代码的影响。这种分离的思想即便对一个程序员和页面设计师是同一个人的项目来说也都是非常有用的,因为分离使得代码保持简洁而且易于维护。
尽管FreeMarker也拥有一些编程能力,但是它却不像PHP那样,是的一种全面的编程语言。反而,Java程序准备的数据来进行显示(比如SQL数据库查询),FreeMarker仅仅是使用模板生成文本页面来呈现已经准备好的数据而已。
FreeMarker不是Web开发的应用程序框架。它是一个适用于Web应用程序框架中的组件,但是FreeMarker引擎本身并不知道HTTP协议或Java Servlet的存在。它仅仅来生成文本内容。既然是这样,它也非常适用于非Web应用程序的开发环境。只是要注意的是,我们使用FreeMarker作为视图层的组件,是为了给诸如Struts这样的Model 2应用框架提供现成的解决方案。
FreeMarker本身是免费的,它基于BSD规则的许可协议。它也是OSI认证的开源软件。OSI认证是开源倡议的认证标识。
本页面中的内容:
我们应该阅读什么内容
如果你是一名…
前端设计师,首先,你应该阅读的是模板开发指南部分,然后如果有需要的话,可以再阅读参考手册来获取更多的技术细节。
程序员,那么,你应该先阅读模板开发指南部分,然后是程序开发指南部分,最后如果需要的话可以阅读参考手册来获取更多技术细节。
本文档规约
变量名,模板代码段,Java类名等用如下格式书写,如:foo。
如果需要具体值来代替某些内容,那么用斜体书写,如:Hello yourName!
模板示例如下书写:
数据对象示例如下书写:
输出数据示例如下书写:
程序示例如下书写:
在面向页面设计师和程序员所编写的章节中代码段给程序员这样写:这只是对程序员而言的。
这样来强调新名词:一些新名词
联系我们
获取最新版本的FreeMarker,订阅邮件请访问FreeMarker主页:http://freemarker.org
如果你需要帮助或者有好的建议,可以使用邮件(邮件文件可以免费搜索)或者Web论坛。如果你想报告一个Bug,请使用Web的Bug跟踪系统或者是邮件。查阅这些内容请访问 http://freemarker.org 。
同时,要注意我们有一个FAQ和索引,你可以使用它们。
几点说明
因为英文版文档的作者是匈牙利人,其母语非英语,那么在这种情况的翻译过程,可能会有错误存在,作者结合自身多年对FreeMarker的实践力求精准,但因个人才疏学浅,水平有限,恳请读者批评指正。
手册的更新根据大家的反馈随时进行,但只在有阶段性成果时公开发布修正版本,并在FreeMarker 2.4版本研发完整后,会及时联系原作者获取新特性以便修改。
本翻译是免费的,您可以自由下载和传播,不可用于任何商业行为。但文档版权归译者所有,原版归FreeMarker项目组所有,您可以引用其中的描述,但必须指明出处。如需用于商业行为,您必须和原作者取得联系。
如果你发现英文原版任何错误(包括语法错误,错别字)或者是在文档中找到一些误导或混淆错误,也可以是其他的建议,或是咨询FreeMarker中的问题,您可以联系原作者。E-mail:[email protected]
关于本文档的翻译错误(包括语法错误,错别字)或中文技术交流,可以联系译者,或者在 OSSEZ 计算技术社区中进行讨论。