首先先来看看官方对freemarker的介绍:

What is FreeMarker?

FreeMarker is a "template engine"; a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates. It's a Java package, a class library for Java programmers. It's not an application for end-users in itself, but something that programmers can embed into their products.

FreeMarker is designed to be practical for the generation of HTML Web pages, particularly by servlet-based applications following the MVC (Model View Controller) pattern. The idea behind using the MVC pattern for dynamic Web pages is that you separate the designers (HTML authors) from the programmers. Everybody works on what they are good at. Designers can change the appearance of a page without programmers having to change or recompile code, because the application logic (Java programs) and page design (FreeMarker templates) are separated. Templates do not become polluted with complex program fragments. This separation is useful even for projects where the programmer and the HTML page author is the same person, since it helps to keep the application clear and easily maintainable.

大家都知道:我们直接看英文原文档与看翻译过来的东西的感觉是不一样的。正如老子所说“道可道,非常道;名可名,非常名”:同样一篇英文文档,不同的人翻译会大有不同,各有各的见解;另外,只要你一翻译,你就把这篇文章界定了,读者读的一般不是原著者的心意,而是译者的偏意。所以,推荐大家看原味的英文文档。

上面英文描述介绍了freemarker的定义与用途:

freemarker是一个用Java编写的“模板引擎”,一个通用的工具来生成输出文本(HTML源代码自动生成基于模板的东西)。freemarker不是为最终用户要的产品自身,而是程序员可以放进他们项目的中间产品。FreeMarker用于生成HTML网页,特别是基于servlet的应用遵循MVC模式。它能够使应用程序逻辑(Java程序)和网页设计(freemarker模板)分开,设计师可以改变网页的外观而无需修改或重新编译Java程序。这种实现能够让每个人都工作在自己最擅长的地方。

freemarker的原理是:模板+数据模型=输出。彻底的分离了显示层与业务逻辑,而用户最终看到的是模板与数据模型合并后创建的。

所谓的模板,就是一份已经写好的基本内容、有固定格式的文件,其中空出或者占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。一看你就懂了,这不就是变量吗!模板中的占位符,在模板运行时,由模板引擎来解析模板,完成动态数据替换。

关于具体怎样会在下面一篇文章中做些许介绍。本文旨在简要介绍freemarker的概念,抛砖引玉,欢迎批评指正。

不过,用其所长,必容其所短:

1、freemarker的变量必须有值,没有被赋值的变量就会抛出异常;

2、freemarker的map限定key必须是string,其它数据类型操作无效;

3、freemarker不支持集群应用。为了编程方便,把不可序列化的东西放进session里面。

……

参考文章:

http://baike.baidu.com/view/1278430.htm

http://freemarker.org/

http://www.iteye.com/topic/17468

http://sucre.blog.51cto.com/1084905/382687

http://www.oecp.cn/hi/hailang/blog/146

强大的freemarker的介绍相关推荐

  1. FreeMarker详细介绍

    FreeMarker 1. 主要内容 2.FreeMarker概述 2.1. FreeMarker概念 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(H ...

  2. Python标准库的强大功能的相关介绍

    http://pyfun.com/rumen/201009/1223.html Python标准库是十分庞大的,其中也有一些质量比较高的库,例如,wXPython.Python以及其他的图形库,等等, ...

  3. 计算机过滤器的作用,14种功能强大的Wireshark过滤器介绍

    大多数情况下,当网络崩溃或遇到问题时,您必须通过搜索捕获到的数据包来查找问题.这就是诸如Wireshark之类的工具大显身手的地方了.它是目前使用最广泛的网络协议分析器之一,它分析从网络TAP(也称为 ...

  4. 一个超级强大的vim 配置介绍:vimplus

    vimplus 介绍 基本介绍 vimplus 是一个开源的超强大的自动配置vim的工具.通过该工具可以快速定制.安装.卸载vim插件.从而实现快速配置vim. 使用该工具的好处: 自动化脚本一键安装 ...

  5. freemarker 详细介绍

    一.Freemarker初步使用 1.freemarker 介绍 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码 ...

  6. FreeMarker标签介绍

    FreeMarker标签使用  一.FreeMarker模板文件主要有4个部分组成   1.文本,直接输出的部分   2.注释,即<#--...-->格式不会输出   3.插值(Inter ...

  7. freemarker内建函数介绍

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

  8. 模板引擎FreeMarker的介绍和使用

    模板引擎 模板引擎的目标是"数据+模板=结果" 模板引擎将数据与展现有效的"解耦" 前端只需要知道怎么编写前端,后端只需关注后端,用模板引擎把两者整合 主流的模 ...

  9. 好用又强大的JavaScript 框架介绍

    JavaScript框架 JavaScript 是开发领域的重要技术之一.根据 Statista 的报告,JavaScript 是 2019年开发人员使用的最流行的编程语言,在2020年亦是如此. 然 ...

最新文章

  1. php人员权限管理(RBAC)
  2. python 使用sort()函数和正则表达式(lambda)对os.listdir()获取的文件夹文件列表进行重新排序 乱序排序
  3. Space-Filling Designs
  4. python中del和remove的区别_Python列表删除元素del、pop()和remove()的区别小结
  5. vmware服务器虚拟化部署sdn,使用VMware的NSX多面落地软件定义网络SDN视频课程
  6. 问题:循环元素,被选中元素个数,全选
  7. H264规定了三种主要档次
  8. Silverlight学习笔记(3):Silverlight的界面布局
  9. 无法渲染窗口发黄_基础c4d教程:OC渲染器的立体光照
  10. UIView常见方法
  11. Lottie动画详解
  12. ENVI5.3.1使用Landsat 8影像进行辐射定标和大气校正实例操作
  13. CSR1010A05-IQQM-R首款单模单芯片蓝牙低功耗
  14. excel 方框打钩
  15. 新托业模拟考试感言—了解一下参加过托业考试前辈们的经验01
  16. 夜神模拟器解决apk无法安装的问题
  17. java——API——ArrayList集合
  18. 2023五一旅游必备物品清单!快记到手机待办APP里
  19. 空指针异常(NullPointerException)
  20. xjoi 1542 玩玩拉格朗日四平方和定理

热门文章

  1. 关于PCBA元器件布局的重要性
  2. mysql 检查数据库是否损坏_mysql 检查数据库是否损坏
  3. 成像导引头半实物仿真测试系统ETest设计与开发
  4. 微商引流有哪些值得推荐的方法?
  5. 中山大学计算机学院优势,中山大学四大王牌专业 优势学科有哪些
  6. 标准坐标系经纬度转百度火星坐标系经纬度
  7. 官宣!联通、电信共建一张5G网络
  8. 「Kafka核心源码剖析系列」4. 走进Kafka服务端(下)
  9. 极简但是很全的vue3+vite+pinia项目模板,开箱即用
  10. 男人的品位在于选择妻子