freemarker
Posted lifuwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了freemarker相关的知识,希望对你有一定的参考价值。
freemarker
模板 + 数据模型 = 输出
数据模型(Data Model)
(root)
|
+- animals
| |
| +- elephant
| | |
| | +- size = "large"
| | |
| | +- price = 5000
| |
|
+- message = "It is a test"
|
+- misc
|
+- fruits
|
+- (1st) = "orange"
|
+- (2nd) = "banana"
上图中的变量扮演目录的角色
- root, animals, elephant, misc被称为 hashes(哈希)。哈希表存储其他变量(被称为子变量), 它们可以通过名称来查找(比如animals或price)。
- 存储单值的变量 (size,price,message) 称为 scalars(标量)。
如果要在模板中使用子变量, 那应该从根root开始指定它的路径: animals.elephant.price。 - 另外一种很重要的变量是 sequences (序列)。 它们像哈希表那样存储子变量,但是子变量没有名字,它们只是列表中的项。 比如,在下面这个数据模型中 misc.fruits 就是序列:
- 数据模型可以被看成是树形结构。
- 标量用于存储单一的值。这种类型的值可以是字符串,数字,日期/时间或者是布尔值。
- 哈希表是一种存储变量及其相关且有唯一标识名称的容器。
- 序列是存储有序变量的容器。存储的变量可以通过数字索引来检索,索引通常从0开始
模板
模板(FTL编程)是由如下部分混合而成的:
文本:文本会照着原样来输出。
插值:这部分的输出会被计算的值来替换。插值由 ${ and } 所分隔。插值仅仅可以在文本中使用。
FTL 标签:FTL标签和html标签很相似,但是它们却是给FreeMarker的指示,而且不会打印在输出内容中。FTL是区分大小写的,FTL 标签 不可以在其他 FTL 标签 和 插值中使用。
注释:注释和HTML的注释也很相似,但它们是由 <#-- 和 -->来分隔的。注释会被FreeMarker直接忽略,更不会在输出内容中显示。注释可以放在FTL标签和插值中。
以上是关于freemarker的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Maven 中使用模板代码生成器(例如 freemarker)?