Freemarker学习笔记 1

 *学习资料来源:《Freemarker- 中文手册》,译者:南磊   Freemarker 版本 2.3.16

1. 概念

    Freemarker是一个模板引擎,用来动态生成Html页面。它应用于典型的MVC场景中的View部分。实行前端设计与动态程序相分离,真正做到了前端Web工程师只关注前端设计,后台开发工程师只关注后台逻辑的实现的目的。这种分离模式使得整个工程结构层次清晰,代码易于维护。

   Freemarker是免费的,基于BSD¹风格的许可,它是OSI²许可的开源软件。

   1.BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

2.表达式

<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>

   那些动态变量表达式 ${...} 几乎很多前端框架都这样定义,例如常用的struts2框架。Freemarker将会输出真实的值来替换花括号中的表达式,这样被称为interpolations插值。

   表达式的值实际由后台对应的数据模型来自动填充。每个表达式的每个元素都对应数据模型中的某个元素。这个数据模型是一个树状结构,一级一级的往下扩展。

   (root)

   |

  +- user = "Big Joe"

   |

  +- latestProduct

   |

  +- url = "products/greenmouse.html"

   |

  +- name = "green mouse"

2.标签

   FTL tags标签(FreeMarker 模板的语言标签):FTL标签和HTML标签有一点相似,但是它们是FreeMarker的指令而且是不会直接输出出来的东西。这些标签的使用一般以符号#开头。(用户自定义的FTL标签使用@符号来代替#)

<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>
Welcome ${user}<#if user == "Big Joe">, our beloved leader</#if>!
</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>

3.注释

   FreeMarker的注释和HTML的注释相似,但是它用<#--和-->来分隔。任何介于这两个分隔符(包含分隔符本身)之间内容会被FreeMarker忽略,就不会输出出来了。

4.小结

   Freemarker作为一个模板,大概的构成可用下图来表示:

Freemarker学习笔记 1

相关推荐