好文档 - 专业文书写作范文服务资料分享网站

Freemarker教程 中文版

天下 分享 时间: 加入收藏 我要投稿 点赞

FreeMarker2.3.10

―Programmer'sGuide(中文版)

前言.........................................................................3一、快速入门..............................................................4

1.1、创建配置实例..............................................................................41.2、创建数据模型(DataModel)..........................................................41.3、获取模版(template)..................................................................51.4、把模版与数据模型合并...................................................................61.5、完整的代码................................................................................6

二、数据模型(DataModel)..........................................7

2.1、基础类型...................................................................................72.2、Scalar类型(单值对应的DataModel)...............................................82.3、容器类型...................................................................................82.4、方法变量...................................................................................92.5、转换器变量..............................................................................102.6、节点变量.................................................................................122.7、对象包裹.................................................................................12

三、配置(Configuration)...........................................15

3.1、基础.......................................................................................153.2、共享变量.................................................................................153.3、配置参数.................................................................................163.4、加载模板.................................................................................173.5、异常处理.................................................................................19

四、其它说明............................................................20

4.1、变量.......................................................................................204.2、字符编码.................................................................................204.3、多线程....................................................................................214.5、Bean包裹................................................................................21

前言

FreeMarker官方参考文档总共有四份,它们分别是

?Designer'sGuide(网上已有翻译,主要从FreeMarker的概念上介绍)

?Programmer'sGuide(本文档所以翻译的部分,主要从框架的设计方面介绍)?XMLProcessingGuide(对XML数据模型处理的介绍)

?Reference(FreeMarker的参考文档,语言使用介绍)

中文翻译之所以选择Programmer'sGuide是因为个人觉得该部分对如何实现FreeMarker进行了比较深入的阐述。有助于读者很好的了解其运作机制,以及去理解其他模板引擎(如Velocity)的工作机理。

注:由于原文档部分内容直译可能难于被读者理解,所以有些地方采用意译为主,因此在翻译用词上难免可能会有出入,大家对翻译的内容有任何意见都可以给我直接发邮件告知motomagice@yahoo.com.cn

一、快速入门

1.1、创建配置实例

首先你需要创建一个Configuration(freemarker.template.Configuration)的实例,设置其中的某些属性。Configuration是存放FreeMarker的Application级别配置信息的一个重要地方。同时,它还负责创建及预解析模版(template)。

在应用系统的生命周期中(servlet)你只需要初始化创建一次Configure实例(因为它保存的是全局配置信息)

Configurationcfg=newConfiguration();//指定一个加载模版的数据源//这里我设置模版的根目录

cfg.setDirectoryForTemplateLoading(newFile(\/where/you/store/templates\//指定模版如何查看数据模型.这个话题是高级主题…//你目前只需要知道这么用就可以了:

cfg.setObjectWrapper(newDefaultObjectWrapper());

你仅仅只需要这么一个配置就可以了。注意:如果你的系统中有多个独立的模块都要使用FreeMarker那么你就需要多个Configuration实例(也就是说你每一个组建都需要一个私有的配置)

1.2、创建数据模型(DataModel)

如果配置简单的数据模型,你可能只需要java.lang和java.util以及一些JavaBeans来构建FreeMarker的数据库模型。

?字符串使用java.lang.String.?数字使用java.lang.Number?布尔使用java.lang.Boolean?数组以及序列使用java.util.List

?Hashes(一种容器类型可以包含的多种基本类型)使用java.util.Map?对于hashes类型的数据模型你也可以使用bean对象来存放,而数据项必须和bean

对象的属性项名称要一致。例如product有一个price属性,那么FreeMarker则可以通过product.price来获取相应的值。

让我们来看一看怎么创建下面这个数据模型。

(root)|

+-user=\Joe\|

+-latestProduct

|

+-url=\|

+-name=\mouse\

以下是创建该模型的java代码:

//创建一个hash类型作为数据模型的rootMaproot=newHashMap();//把字符串user放置到root中root.put(\\Joe\

//再创建一个hash类型名字叫做latestProductMaplatest=newHashMap();

//同样把它放置到root中

root.put(\latest);

//放置url和name属性到latest

latest.put(\\latest.put(\\mouse\

对于数据模型中的latestProduct属性来说,你也可以使用普通JavaBean存储,但是bean必须要拥有url和name两个属性(也就是它有getURL()这些方法),对于FreeMarker模版来说两种定义数据库模型(Map,bean方式)的方式实质上是一样的。

1.3、获取模版(template)

模版对象一般就是指代freemarker.template.Template实例。通常你可以从一个Configuration实例中获取模版实例。你可以通过getTemplate这个方法来获得。

Templatetemp=cfg.getTemplate(\

当你调用如上代码的时候,它将会创建一个与test.ftl对应的模版实例,也就是读取/where/you/store/templates/test.ftl路径下的文件然后解析(编译)。模版对象一般存储的是经过解析过的模版内容。

如果Configuration实例配置缓存Template实例策略的话,那么当你再次要获取test.ftl的时候,那么就可以从缓存中获得,而不会重新生成一个新的模版实例。

Freemarker教程 中文版

FreeMarker2.3.10―Programmer'sGuide(中文版)前言.........................................................................3一、快速入门..............................................................
推荐度:
点击下载文档文档为doc格式
6onax88o2c6x2111f55r
领取福利

微信扫码领取福利

微信扫码分享