借助FMPP(FreeMarker PreProcessor)来运行FreeMarker
首先说明的是FreeMarker的运行并不依赖于FMPP。FMPP只是一个FreeMarker的辅助工具,有了它,我们可以快速地调试FreeMarker输出结果,而不需要借助Java编程,这可以大大地减轻美工设计人员的调试难度。你可以从:http://fmpp.sourceforge.net/ 得到它。
在使用Freemaker的时候,我们需要下载相关的程序:
freemarker: http://freemarker.sourceforge.net/
在磁盘上建立相关的文件夹:
D:/work/src/product.ftl
D:/work/out/
D:/work/data/product.tdd
D:/work/config.fmpp我们使用的配置文件(config.fmpp)设置如下:
sourceRoot: src
outputRoot: out
logFile: log.fmpp
modes: [
copy(common/**/*.*, resource/*.*)
execute(*.ftl)
ignore(templates/*.*, .project, **/*.xml, xml/*.*, *.js)
]
replaceExtensions: [ftl, html]
sourceEncoding: gb2312
data: tdd(../data/product.tdd)注意:"data: tdd(../data/product.tdd)" 指定了模板的数据源,TDD是fmpp支持的数据格式之一 ,关于TDD介绍可参阅fmpp文档,也可参看TDD。product.tdd内容是这样的:
{
user: "Big Joe"
latestProduct: {url: "products/greenmouse.html", name: "Green Mouse"}
}现在在dos下执行(假设FMPP安装在D:/FMPP下):
D:/work/>D:/FMPP/bin/fmpp最后的输出结果是这样的,存放在文件out/product.html中:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome Big Joe!</h1>
<p>Our latest product:
<a href="products/greenmouse.html">green mouse</a>!
</body>
</html>
写一个bat 文件方便调用,在d:写invockFPMM.bat
内容如下:
d:
rem:
cd/work
pause 按任意键开始执行编译
d:/fmpp/bin/fmpp
正如FreeMarker文档中所叙述的,FreeMarker的工作原理就是:
模板+数据=输出!
FreeMarker并不局限于生成html,甚至可以产生java代码,这仅仅取决于你如何设计模板而已。
现在有了FMPP这个强大工具,我们接下来可以快速学习FreeMarker的相关指令。let us go!
在FreeMarker模板中使用的三种基本对象类型:Scalars、Hashes 和Sequences。在解释这些对象类型之前,我们先来看看数据模型。
典型的数据模型是树型结构,可以有任意深的层次,比如说:
(root)
|
+- animals
| |
| +- mouse
| | |
| | +- size = "small"
| | |
| | +- price = 50
| |
| +- elephant
| | |
| | +- size = "large"
| | |
| | +- price = 5000
| |
| +- python
| |
| +- size = "medium"
| |
| +- price = 4999这棵树上的每一片叶子在FreeMarker中就称为Scalars,用来存储单值。Scalars保存的值有两种类型:字符串(用引号括起,可以是单引 号或双引号)、数字(不要用引号将数字括起,这会作为字符串处理)、日期和boolean值。对scalars的访问要从root开始,各部分用“.”分 隔,如animals.mouse.price。
树的每一个分支关联一个唯一的查询名字,例如“mouse”,“elephant”,这些分支充当了其他对象(size,price)的容器,这种结构则称为Hashes,参考Hashes的TDD定义。
Sequences的作用与Hashes类似,也可以充当其它对象的容器,只是不使用变量名字,而使用数字索引:
(root)
|
+- animals
| |
| +- (1st)
| | |
| | +- name = "mouse"
| | |
| | +- size = "small"
| | |
| | +- price = 50
| |
| +- (2nd)
| | |
| | +- name = "elephant"
| | |
| | +- size = "large"
| | |
| | +- price = 5000
| |
| +- (3rd)
| |
| +- name = "python"
| |
| +- size = "medium"
| |
| +- price = 4999可以通过animals[0].name来访问相应的Scalars。参考Sequences的TDD定义
分享到:
相关推荐
freemark与ibatis动态运用与说明,程序,源代码,文档
一些很不错的freemark资料及eclipse的freemark插件
freemark开发指南详解freemark开发指南详解freemark开发指南详解freemark开发指南详解freemark开发指南详解
主要介绍了freemark标签的相关基础知识,基本上了解Freemark标签的应用
Freemark指南:全面介绍Freemark的使用方法,让你的页面已程序完美的结合!
freemark,用的不不广泛,网上的例子也很少,这个例子很简单,可以让读者了解freemark的功能,运行Test.java就会输入出test_freemark.html文件
freemark中文资料 freemark教程 freemark基础和高级教程
freemark模板&模版技术&freemark模板&模版技术
FREEMARK资料,开发入门指南 是开发人员了解FREEMARK的一本入门资料
freemark生成静态页面,直接导入该项目 使用JDK1.6。直接运行代码中的CreateHtmlWebSite.java, 即可在webroot下面生成MyWebSite.html静态页面。
freemark ,
freemark比较实用的手册,中文版 适合快速学习
FreeMark jar包,中文官方文档。FreeMark jar包,中文官方文档。
本示列为freemark页面静态化 完整demo 可导入工程直接运行查看效果
freemark 2.3.19 中文教程
SpringMVC+Freemark简单整合 不含lib下的jar。
freemark从入门到精通,freemark讲解,从小白到大明白。
freemark 模板引擎 概述 教程 5分钟入门 pdf
freemark标签使用的一些说明.希望对大家有点用。