FreeMarker学习(一):简介
FreeMarker学习(一):简介
yuhuan121 发表于2个月前
FreeMarker学习(一):简介
  • 发表于 2个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

1、概念

FreeMarker是基于模板和要改变的数据的,用来生成输出文本的通用工具。

2、数据模型

数据模型的基本结构是树状的 如下所示:

(root)
  |
  +- animals
  |   |
  |   +- mouse
  |   |   |   
  |   |   +- size = "small"
  |   |   |   
  |   |   +- price = 50
  |   |
  |   +- elephant
  |   |   |   
  |   |   +- size = "large"
  |   |   |   
  |   |   +- price = 5000
  |   |
  |   +- python
  |       |   
  |       +- size = "medium"
  |       |   
  |       +- price = 4999
  |
  +- message = "It is a test"
  |
  +- misc
      |
      +- foo = "Something"

图中的变量充当类似目录的角色,如root, animals, mouse, elephant, python, misc,是哈希表;存储的其他变量又称为子变量;存储单值的变量称为标量,如size、price。message、foo;

哈希表是存储相关变量和与其相关的具有唯一标识名称的容器;

如果想在模板中使用子变量,比如第一个price,就要这样写:animals.mouse.price

(root)
  |
  +- animals
  |   |
  |   +- (1st)
  |   |   |
  |   |   +- name = "mouse"
  |   |   |
  |   |   +- size = "small"
  |   |   |
  |   |   +- price = 50
  |   |
  |   +- (2nd)
  |   |   |
  |   |   +- name = "elephant"
  |   |   |
  |   |   +- size = "large"
  |   |   |
  |   |   +- price = 5000
  |   |
  |   +- (3rd)
  |       |
  |       +- name = "python"
  |       |
  |       +- size = "medium"
  |       |
  |       +- price = 4999
  |
  +- misc
      |
      +- fruits
          |
          +- (1st) = "orange"
          |
          +- (2nd) = "banana"

还有一种变量叫做序列,只不过是哈希表中的子变量没有名字,比如上图的animals、misc。fruits就是序列;序列是存储有序变量的容器。

访问序列的子变量用索引。比如anims[0].name、misc.fruits[0]等;

3、模板文件构成

有4部分:

  • 插值:${ } 大括号里面的值输出的真实的值;
  • 注释:<#-- -->,和HTML类似
  • FTL标签:类似与HTML,<#.. > </#..> ,还有把#换成@,这是用户自定义的标签
  • 静态文本:直接输出的

例子:

<!DOCTYPE html>
<html>
<head>
	<title>welcome</title>
</head>
<body>
	<#--这是一个注释-->
	<h1>welcome${user}!</h1>
	<p>we have these animals:</p>
	<ul>
		<#list animals as being>
			<li>${being.name} for ${being.price} Euros</li>
		</#list>
	</ul>
</body>
</html>
共有 人打赏支持
粉丝 0
博文 34
码字总数 37173
×
yuhuan121
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: