FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

  最简单的模板是普通 HTML 文件(或者是其他任何文本文件—FreeMarker 本身不属于HTML) 。当客户端访问页面时,FreeMarker 要发送 HTML 代码至客户端浏览器端显示。如果想要页面动起来,就要在 HTML 中放置能被 FreeMarker 所解析的特殊部分。${…}:FreeMarker 将会输出真实的值来替换花括号内的表达式,这样的表达式被称为
interpolations
插值,可以参考第上面示例的内容。FTL tags 标签(FreeMarker  模板的语言标签) :FTL 标签和 HTML
标签有一点相似,但是它们是 FreeMarker 的指令而且是不会直接输出出来的东西。这些标签的使用一般以符号#开头。(用户自定义的 FTL
标签使用@符号来代替#,但这是更高级的主题内容了,后面会详细地讨论)Comments 注释:FreeMarker 的注释和 HTML
的注释相似,但是它用<#--和-->来分隔的。任何介于这两个分隔符(包含分隔符本身)之间内容会被 FreeMarker
忽略,就不会输出出来了。
其他任何不是 FTL 标签,插值或注释的内容将被视为静态文本,这些东西就不会被
FreeMarker 所解析,会被按照原样输出出来。
directives 指令:就是所指的 FTL 标签。这些指令在 HTML 的标签(如<table>和
</table>) 和 HTML 元素(如 table 元素)中的关系是相同的。 (如果现在你还不能区
分它们,那么把“FTL 标签”和“指令”看做是同义词即可。)

  FreeMarker中的数据类型:

  1.字符串(String):这是文本类型,字符的任意序列

  2.数字(Integer):这是数字值类型,在 FreeMarker 中字符串”120”和数字 120是两种完全不同的类型。前者只是两个字符的序列(这恰好是我们可以读的一个数字) ,而后者是一个可以在算数运算中直接被使用的数值。

  3.日期/时间(Date):这是时间日期类型。eg:入职时间。。。
  4.布尔值(Boolean):对应对/错.true or false.

  数据模型可以被看做是树状结构的。标量存储单一的值,这种类型的值可以是字符串,数字,日期/时间或者是布尔值。哈希表是存储变量和与其相关且有唯一标识名称变量的容器。序列是存储有序变量的容器。存储的变量可以通过数字索引来检索,索引通常从零开始。

FreeMarker初探--介绍的更多相关文章

  1. freemarker语法介绍及其入门教程实例

    # freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>####  1.文本,直接输 ...

  2. FreeMarker标签介绍

    转自:http://www.blogjava.net/kxbin/articles/366505.html FreeMarker标签使用 一.FreeMarker模板文件主要有4个部分组成  1.文本 ...

  3. FreeMarker初探--安装FreeMarker

    这里安装FreeMarker相当简单,不需要真正的安装过程.仅仅是拷贝 lib/freemarker.jar 到你 Java 应用程序的路径中,让类加载器可以发现它.比如,如果你在 Web 使用了 F ...

  4. freemarker内建函数介绍

    Sequence的内置函数1.sequence?first 返回sequence的第一个值.2.sequence?last 返回sequence的最后一个值.3.sequence?reverse 将s ...

  5. Freemarker常用技巧(三)

    freemarker模板解析过程 例如:一个freemarker表达式<body> ${hello} </body>,会被解析成三个部分,分别是<body>${he ...

  6. Spring mvc整合freemarker详解

    1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式 ...

  7. Freemarker实例教程

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任.作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/a ...

  8. springboot使用Freemarker继承

    最近需要用到Freemarker的继承.但是发现没有关于springboot配置Freemarker的继承的.所以趁现在有时间写个博客. 1. Freemarker继承介绍 Freemarker 通过 ...

  9. FreeMarker 教程整理

    Freemarker新手教程 http://blog.csdn.net/qq_23994787/article/details/77506980   FreeMarker教程整理 http://blo ...

随机推荐

  1. [acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Fantastic Beasts

    地址:http://codeforces.com/gym/101194 题目:略 思路: 这题做法挺多的,可以sam也可以后缀数组,我用sam做的. 1.我自己yy的思路(瞎bb的) 把第一个串建立s ...

  2. splay伸展树模板

      普通版本: struct SplayTree { ; ], key[maxn], val[maxn], sz[maxn], lz[maxn], fa[maxn]; , ) { ch[x][]=ch ...

  3. 原生js 操作dom

    1.一些常用的方法 obj.getElementById() 返回带有指定 ID 的元素. obj.getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节 ...

  4. Linux中LVM2原理

    一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Devi ...

  5. 清除list或者map集合,减少内存的占用率

    1.在编写程序对数据处理的时候我们经常会使用到list和map集合,有些时候我们存到集合里的数据只是暂时性的,在验证完或者使用完之后尽量对list或者map清空,及list.clear()后者map. ...

  6. MLlib1.6指南笔记

    MLlib1.6指南笔记 http://spark.apache.org/docs/latest/mllib-guide.html spark.mllib RDD之上的原始API spark.ml M ...

  7. Codeforces679E. Bear and Bad Powers of 42

    传送门 今天子帧的一套模拟题的T3. 考试的时候其实已经想到了正解了,但是一些地方没有想清楚,就没敢写,只打了个暴力. 首先考虑用线段树维护区间信息. 先把每个值拆成两个信息,一是距离他最近的且大于他 ...

  8. 蓝桥杯练习——C++输出阶乘的最右边一位非零数

    #include<iostream> #include<iomanip> using namespace std; #define M 10000 #define N 1000 ...

  9. Java学习笔记-方法引用

    方法引用(Method Reference) 上一篇中记录了Lambda表达式,其可以创建匿名方法.当Lambda表达式只是调用一个存在的方法时,可以采用方法引用(JDK8具有的特性).如下: pub ...

  10. python-高阶函数和闭包

    高阶函数:把函数作为参数传入,这样的函数成为高阶函数. 高阶函数,higher-order function Abs()内置函数:绝对值 函数名是什么:指向函数的变量 传入函数 一个函数的参数是否可以 ...