借助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定义
分享到:
相关推荐
它被广泛应用于Web开发中,特别是与Java后端框架如Spring、Struts等配合使用,为前端展示提供便捷的模板渲染服务。Eclipse是流行的Java集成开发环境(IDE),为了方便开发者在Eclipse中编写和调试FreeMarker模板,有...
6. **国际化与本地化**:FreeMark支持多语言环境,可以使用`<#t>`指令进行日期和数字的本地化格式化。 7. **模板继承与导入**:使用`<#macro>`定义可重用的宏,通过`<@macroName>`调用。`<#import>`可以导入宏库,`...
主要介绍了freemark标签的相关基础知识,基本上了解Freemark标签的应用
在动态运用中,Freemarker通过模板语言来表达逻辑,将数据模型中的变量与模板结合,生成最终的输出。学习Freemarker,你需要理解其基本语法,如 `${}` 用于插入变量,`<#if>`、`<#else>` 进行条件判断,以及 `...
FREEMARK资料,开发入门指南 是开发人员了解FREEMARK的一本入门资料
Freemark是一个强大的模板引擎,它允许开发者将逻辑与展示分离,使得HTML或其他类型的文档生成变得更加简洁和灵活。本教程适用于初学者,旨在快速引导你掌握Freemark的基本使用方法。我们将通过几个关键步骤来理解并...
FreeMarker的工作原理是,通过读取预先定义好的模板文件,结合传入的数据模型,生成最终的输出文本。 在“实现FreeMark读取模板生成HTML”的过程中,我们需要完成以下几个关键步骤: 1. **安装与引入**: 首先,...
**Freemark**是一种强大的模板引擎,主要用于将数据模型与表示层分离。它通过一种简洁而强大的语法来实现动态内容的渲染,使得开发者能够更加灵活地控制页面布局和内容展示。本指南旨在全面介绍Freemark的基本概念...
基于iText和flying saucer结合freemark生成pdf 范例 1. 使用maven构建,不含jar包,可以自行使用maven下载依赖包, 2. 使用前需要将C:/Windows/Fonts/ARIALUNI.TTF 复制到doc-render/src/test/resources/config/fonts...
它基于模板语言,通过定义变量和控制结构(如if/else、foreach等),在运行时将这些变量与Java对象的数据结合,生成最终的HTML输出。这使得我们可以灵活地构建动态网页,同时保持页面源码的清晰和可读性。 在给定的...
它是一种声明式编程语言,主要用于将数据模型与HTML或者其他格式的模板结合,生成最终的输出。在本资料学习中,我们将深入探讨Freemarker的基础知识以及高级特性,帮助你全面掌握这个强大的工具。 一、Freemarker...
这个“freemark_java_test.rar”压缩包包含了与FreeMarker相关的示例源码,用于演示如何在Java项目中有效利用FreeMarker模板语言。 FreeMarker的核心概念是模板和数据模型。模板是HTML、XML或其他格式的静态文本,...
它的主要作用是将数据模型与HTML模板结合,生成动态网页内容。本篇将深入讲解Freemarker的开发指南,帮助你更好地理解和使用这一工具。 1. **Freemarker基础概念** - **模板语言**:Freemarker使用的是基于文本的...
3. **变量定义与输出** - `<#assign var = value>` 定义全局变量并赋值。 - `<#local var = value>` 在宏或函数内定义局部变量并赋值。 - `<#global var = value>` 定义全局变量并赋值。 - `${var}` 输出变量并...
spket1.6.18与jboss-freemark的eclipse插件
在这个"test_Freemark freemark的基础入门小程序"中,我们将探讨Freemarker的基本概念、语法以及如何通过运行`Test.java`来生成`test_freemark.html`文件。 1. **Freemarker模板引擎基础**: Freemarker是基于模板...
当下载的excel格式内容比较复杂时,用程序生成excel文件就显得力不从心。这时采用excel模板化,更加便捷高效。本资源基于springboot+freemark模板做的示例。只需要了解下freemark基本语法即可。
FreeMarker是Java的动态模板语言,它与数据模型结合,生成HTML或其他文本输出。以下是FreeMarker的一些关键特性: 1. **模板**: FreeMarker模板包含静态文本和控制结构,如条件语句、循环等,以及数据对象引用。 2...
springboot 集成mybits mysql和freemark模板引擎demo,本demo在mybaits中sql用到springboot默认注解sql以及spring的mapping映射*.xml 两种方式,而且配置操作日志(sql打印)
总结来说,FreeMarker模板及模版技术提供了一种强大且灵活的方式,将静态模板与动态数据相结合,生成定制化的输出。它的易用性和可扩展性使其在各种Web开发场景中得到广泛应用。通过深入了解和熟练掌握FreeMarker,...