`
01jiangwei01
  • 浏览: 540979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

freemark 与FMPP 结合,运行 freemark

阅读更多
借助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资料及eclipse的freemark插件

    它被广泛应用于Web开发中,特别是与Java后端框架如Spring、Struts等配合使用,为前端展示提供便捷的模板渲染服务。Eclipse是流行的Java集成开发环境(IDE),为了方便开发者在Eclipse中编写和调试FreeMarker模板,有...

    FreeMark Jar包 包括 中文 官方文档

    6. **国际化与本地化**:FreeMark支持多语言环境,可以使用`&lt;#t&gt;`指令进行日期和数字的本地化格式化。 7. **模板继承与导入**:使用`&lt;#macro&gt;`定义可重用的宏,通过`&lt;@macroName&gt;`调用。`&lt;#import&gt;`可以导入宏库,`...

    Freemark标签

    主要介绍了freemark标签的相关基础知识,基本上了解Freemark标签的应用

    freemark与ibatis动态运用与说明,程序,源代码,文档

    在动态运用中,Freemarker通过模板语言来表达逻辑,将数据模型中的变量与模板结合,生成最终的输出。学习Freemarker,你需要理解其基本语法,如 `${}` 用于插入变量,`&lt;#if&gt;`、`&lt;#else&gt;` 进行条件判断,以及 `...

    freemark开发指南(入门)

    FREEMARK资料,开发入门指南 是开发人员了解FREEMARK的一本入门资料

    Freemark模板使用

    Freemark是一个强大的模板引擎,它允许开发者将逻辑与展示分离,使得HTML或其他类型的文档生成变得更加简洁和灵活。本教程适用于初学者,旨在快速引导你掌握Freemark的基本使用方法。我们将通过几个关键步骤来理解并...

    Freemark指南

    **Freemark**是一种强大的模板引擎,主要用于将数据模型与表示层分离。它通过一种简洁而强大的语法来实现动态内容的渲染,使得开发者能够更加灵活地控制页面布局和内容展示。本指南旨在全面介绍Freemark的基本概念...

    基于iText和flying saucer结合freemark生成pdf 范例

    基于iText和flying saucer结合freemark生成pdf 范例 1. 使用maven构建,不含jar包,可以自行使用maven下载依赖包, 2. 使用前需要将C:/Windows/Fonts/ARIALUNI.TTF 复制到doc-render/src/test/resources/config/fonts...

    实现FreeMark读取模板生成HTML

    FreeMarker的工作原理是,通过读取预先定义好的模板文件,结合传入的数据模型,生成最终的输出文本。 在“实现FreeMark读取模板生成HTML”的过程中,我们需要完成以下几个关键步骤: 1. **安装与引入**: 首先,...

    freemark 生成静态页面

    它基于模板语言,通过定义变量和控制结构(如if/else、foreach等),在运行时将这些变量与Java对象的数据结合,生成最终的HTML输出。这使得我们可以灵活地构建动态网页,同时保持页面源码的清晰和可读性。 在给定的...

    freemark 资料学习

    它是一种声明式编程语言,主要用于将数据模型与HTML或者其他格式的模板结合,生成最终的输出。在本资料学习中,我们将深入探讨Freemarker的基础知识以及高级特性,帮助你全面掌握这个强大的工具。 一、Freemarker...

    freemark_java_test.rar_freeMark ja_freemark_java freemark

    这个“freemark_java_test.rar”压缩包包含了与FreeMarker相关的示例源码,用于演示如何在Java项目中有效利用FreeMarker模板语言。 FreeMarker的核心概念是模板和数据模型。模板是HTML、XML或其他格式的静态文本,...

    freemark开发指南详解

    它的主要作用是将数据模型与HTML模板结合,生成动态网页内容。本篇将深入讲解Freemarker的开发指南,帮助你更好地理解和使用这一工具。 1. **Freemarker基础概念** - **模板语言**:Freemarker使用的是基于文本的...

    Freemark基础入门+深入

    3. **变量定义与输出** - `&lt;#assign var = value&gt;` 定义全局变量并赋值。 - `&lt;#local var = value&gt;` 在宏或函数内定义局部变量并赋值。 - `&lt;#global var = value&gt;` 定义全局变量并赋值。 - `${var}` 输出变量并...

    spket与freemark插件

    spket1.6.18与jboss-freemark的eclipse插件

    test_Freemark freemark的基础入门小程序

    在这个"test_Freemark freemark的基础入门小程序"中,我们将探讨Freemarker的基本概念、语法以及如何通过运行`Test.java`来生成`test_freemark.html`文件。 1. **Freemarker模板引擎基础**: Freemarker是基于模板...

    freemark制定excel下载模板示例

    当下载的excel格式内容比较复杂时,用程序生成excel文件就显得力不从心。这时采用excel模板化,更加便捷高效。本资源基于springboot+freemark模板做的示例。只需要了解下freemark基本语法即可。

    Struts2+Freemark

    FreeMarker是Java的动态模板语言,它与数据模型结合,生成HTML或其他文本输出。以下是FreeMarker的一些关键特性: 1. **模板**: FreeMarker模板包含静态文本和控制结构,如条件语句、循环等,以及数据对象引用。 2...

    springboot+mybaits+freemark+mysql

    springboot 集成mybits mysql和freemark模板引擎demo,本demo在mybaits中sql用到springboot默认注解sql以及spring的mapping映射*.xml 两种方式,而且配置操作日志(sql打印)

    freemark模板&模版技术

    总结来说,FreeMarker模板及模版技术提供了一种强大且灵活的方式,将静态模板与动态数据相结合,生成定制化的输出。它的易用性和可扩展性使其在各种Web开发场景中得到广泛应用。通过深入了解和熟练掌握FreeMarker,...

Global site tag (gtag.js) - Google Analytics