博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeMarker学习(一):简介
阅读量:6471 次
发布时间:2019-06-23

本文共 1662 字,大约阅读时间需要 5 分钟。

hot3.png

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,<#.. > </#..> ,还有把#换成@,这是用户自定义的标签
  • 静态文本:直接输出的

例子:

	welcome	<#--这是一个注释-->	

welcome${user}!

we have these animals:

    <#list animals as being>
  • ${being.name} for ${being.price} Euros

转载于:https://my.oschina.net/joe12321/blog/1529778

你可能感兴趣的文章
详解Javascript 中的this指针
查看>>
vs 2013 设置website项目端口
查看>>
软件项目的开发的时间视乎永远都不够用
查看>>
JMeter特点&性能测试工具选型的原则&模拟压力的原理
查看>>
对前面信息管理系统的完善
查看>>
linux常用命令
查看>>
数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)...
查看>>
栈以及内存操作在汇编中的实现
查看>>
set enviroment in linux
查看>>
Android App 开发常用的xUtils框架
查看>>
深度克隆和浅拷贝
查看>>
ansible之感冒药
查看>>
计算机硬件
查看>>
(一)lamp 环境搭建之编译安装apache
查看>>
python开发模块基础:正则表达式
查看>>
axios 的用法
查看>>
kinect骨架追踪及手势识别(基于ogre引擎)
查看>>
蓝桥杯——算法提高 最小方差生成树
查看>>
成员变量和局部变量
查看>>
4.2.01
查看>>