`
陳建燊
  • 浏览: 3181 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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模块结构图

 

分享到:
评论

相关推荐

    Freemarker学习笔记

    Freemarker学习笔记可以帮助初学者了解,快速掌握Freemarker

    FreeMarker学习笔记

    FreeMarker学习笔记FreeMarker学习笔记FreeMarker学习笔记

    Freemarker 学习笔记一 【乱码解决】

    NULL 博文链接:https://zx527291227.iteye.com/blog/1924333

    FreeMarker学习资料整理

    本人辛辛苦苦整理了一些关于FreeMarker的资料,并自己写了一些学习笔记,非常适合首次接触FreeMarker的童鞋

    freemarker笔记

    简单介绍freeMarker

    springboot学习笔记源码

    springboot学习笔记源码【jsp+jpa+freemarker】

    FreeMark学习笔记

    FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} 2.1 通用插值 对于通用插值,又可以分为以下4种情况: 1,插值结果为字符串值:直接输出表达式结果 2,插值结果为数字值...

    SpringBoot学习笔记所有源码集

    SpringBoot学习笔记所有源码集,包括 集成了freemarker、Servlet、拦截器、拦截器、Filter、静态资源处理、启动加载数据、Springboot 日志、JDBC使用、Springboot JPA、Mybatis、动态数据源、集成swagger、集成Redis...

    FreeMarker_2.3.23 CHM

    FreeMarker_2.3.23 CHM FreeMarker_2.3.23 CHM FreeMarker_2.3.23 CHM FreeMarker_2.3.23 CHM

    struts项目学习笔记

    支持更多视图技术(JSP(转译java文件,编译成class文件,才可以运行)、(模板技术,html,把数据和模板html一起以流方式输出)FreeMarker、Velocity) 基于AOP(面向切面编程)思想的拦截器机制,更易扩展(不修改源代码的...

    JFinal+freemarker+maven demo实例

    此次写这个文章主要是为了记得的一个笔记成分,然后分享一下自己在入门学习是的一些步骤和源码问题,分享给大家一起学习,一起探讨深入

    JavaEE5学习笔记13-JSF集成Facelets使用经验总结

    JavaEE5学习笔记13-JSF集成Facelets使用经验总结.

    Struts学习笔记.txt

    Struts2 必备5个jar包: commons-logging-api-1.1.jar freemarker-2.3.8.jar ognl-2.6.11.jar struts2-core-2.0.8.jar xwork-2.0.3.jar

    java开发常用的中文API集合包

    Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版).pdf java web标签大全.CHM jBPM_4.4_开发指南.pdf jquery1.7 中文手册.chm lucene3.0-api.CHM...

Global site tag (gtag.js) - Google Analytics