强大的freemarker的介绍

首先先来看看官方对freemarker的介绍:

What is FreeMarker?

FreeMarker is a "template engine"; a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates. It's a Java package, a class library for Java programmers. It's not an application for end-users in itself, but something that programmers can embed into their products.

FreeMarker is designed to be practical for the generation of HTML Web pages, particularly by servlet-based applications following the MVC (Model View Controller) pattern. The idea behind using the MVC pattern for dynamic Web pages is that you separate the designers (HTML authors) from the programmers. Everybody works on what they are good at. Designers can change the appearance of a page without programmers having to change or recompile code, because the application logic (Java programs) and page design (FreeMarker templates) are separated. Templates do not become polluted with complex program fragments. This separation is useful even for projects where the programmer and the HTML page author is the same person, since it helps to keep the application clear and easily maintainable.

大家都知道:我们直接看英文原文档与看翻译过来的东西的感觉是不一样的。正如老子所说“道可道,非常道;名可名,非常名”:同样一篇英文文档,不同的人翻译会大有不同,各有各的见解;另外,只要你一翻译,你就把这篇文章界定了,读者读的一般不是原著者的心意,而是译者的偏意。所以,推荐大家看原味的英文文档。

上面英文描述介绍了freemarker的定义与用途:



freemarker是一个用Java编写的“模板引擎”,一个通用的工具来生成输出文本(HTML源代码自动生成基于模板的东西)。freemarker不是为最终用户要的产品自身,而是程序员可以放进他们项目的中间产品。FreeMarker用于生成HTML网页,特别是基于servlet的应用遵循MVC模式。它能够使应用程序逻辑(Java程序)和网页设计(freemarker模板)分开,设计师可以改变网页的外观而无需修改或重新编译Java程序。这种实现能够让每个人都工作在自己最擅长的地方。


freemarker的原理是:模板+数据模型=输出。彻底的分离了显示层与业务逻辑,而用户最终看到的是模板与数据模型合并后创建的。

所谓的模板,就是一份已经写好的基本内容、有固定格式的文件,其中空出或者占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。一看你就懂了,这不就是变量吗!模板中的占位符,在模板运行时,由模板引擎来解析模板,完成动态数据替换。

关于具体怎样会在下面一篇文章中做些许介绍。本文旨在简要介绍freemarker的概念,抛砖引玉,欢迎批评指正。


不过,用其所长,必容其所短:

1、freemarker的变量必须有值,没有被赋值的变量就会抛出异常;

2、freemarker的map限定key必须是string,其它数据类型操作无效;

3、freemarker不支持集群应用。为了编程方便,把不可序列化的东西放进session里面。

……


参考文章:

http://baike.baidu.com/view/1278430.htm

http://freemarker.org/

http://www.iteye.com/topic/17468

http://sucre.blog.51cto.com/1084905/382687

http://www.oecp.cn/hi/hailang/blog/146

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值