freemarker -基本概念
2017-07-23 15:21
183 查看
1.什么是freemarker:
是一种模板引擎,它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 一种基于模板和要改变的数据,
并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。
2.数据模型:
简单来说就是为模板准备的数据整体被称为数据模型
在视觉效果上, 数据模型可以是:
(root)
|
+-user
= "xxxxx"
|
+- Product
|
+- name
= "green mouse"
注意:
上面只是一个形象化显示;数据模型不是文本格式,它来自于Java对象。 对于Java程序员来说,源代码等)的通用工具。root就像一个有 getUser() 和 getProduct() 方法的Java对象, 也可以有 "user" 和"Products" 键值的Java Map对象。相似地,latestProduct 就像是 getName() 方法的Java对象。
3 序列,标量
| +- (2nd) = "banana"
上图中的变量扮演目录的角色(比如 root,
被称为 hashes (哈希表或哈希,译者注)。存储单值的变量 (
称为 scalars (标量),另外一种很重要的变量是 sequences (序列,)。
它们像哈希表那样存储子变量,但是子变量没有名字,它们只是列表中的项。 比如,在下面这个数据模型中,
4 基本指令
如果
重复内容 部分将会在给定的
从第一项开始,一个接着一个。在所有的重复中, 自定义变量 将持有当前遍历项的值。
这个变量仅存在于
misc.fruits as fruit> <li>${fruit}</#list></ul>
是一种模板引擎,它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 一种基于模板和要改变的数据,
并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。
2.数据模型:
简单来说就是为模板准备的数据整体被称为数据模型
在视觉效果上, 数据模型可以是:
(root)
|
+-user
= "xxxxx"
|
+- Product
|
+- name
= "green mouse"
注意:
上面只是一个形象化显示;数据模型不是文本格式,它来自于Java对象。 对于Java程序员来说,源代码等)的通用工具。root就像一个有 getUser() 和 getProduct() 方法的Java对象, 也可以有 "user" 和"Products" 键值的Java Map对象。相似地,latestProduct 就像是 getName() 方法的Java对象。
3 序列,标量
(root) | +- animals | | | +- mouse | | | | | +- size = "small" | | | | | +- price = 50 | | | +- elephant | | | | | +- size = "large" | | | | | +- price = 5000 +- message = "It is a test" | +- misc +- fruits
| +- (1st) = "orange"
| +- (2nd) = "banana"
上图中的变量扮演目录的角色(比如 root,
animals,
mouse,
elephant,
python,
misc)
被称为 hashes (哈希表或哈希,译者注)。存储单值的变量 (
size,
price,
message和
foo)
称为 scalars (标量),另外一种很重要的变量是 sequences (序列,)。
它们像哈希表那样存储子变量,但是子变量没有名字,它们只是列表中的项。 比如,在下面这个数据模型中,
animals和 misc.fruits就是序列。
4 基本指令
<#if condition>content
</#if>
如果
condition是false(布尔值),那么介于
<#if condition>和
</#if>标签中的内容会被略过。
<#list sequence as 自定义变量>
重复内容</#list>。
重复内容 部分将会在给定的
sequence遍历时在每一项中重复,
从第一项开始,一个接着一个。在所有的重复中, 自定义变量 将持有当前遍历项的值。
这个变量仅存在于
<#list ...>和
</#list>标签内。
sequence可以是任意表达式, 比如我们可以列表显示示例数据模型中的水果,就像这样:<ul><#list
misc.fruits as fruit> <li>${fruit}</#list></ul>
相关文章推荐
- 关于网络协议和socket编程基本概念
- Tensorflow一些常用基本概念与函数(二)
- J2EE规范系列之 JMS1.1 (一) 基本概念
- 线程---基本概念
- OpenStack Keystone的基本概念理解
- EXT JS学习之基本概念
- UML2.0类关系基本概念与StarUML2操作
- 数据库基本概念
- WebService的基本概念:java webservice,什么是webservice
- ElasticSearch的基本概念
- ARM的一些基本概念
- [转]进位计数制的基本概念
- [每日一题] OCP1z0-047 :2013-07-17 基本概念:同义词、动态性能视图、数据字典视图............6
- 基本概念AndEngine为Android开发游戏
- OpenGL ES 2.0基本概念
- Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
- [WCF 学习笔记] 1. 基本概念
- O3D的优点和几个基本概念
- UML模型的基本概念
- 数学基本概念辨析