偶然接触到FreeMaker这个WEB开发利器。
一直想好好研究一下~今天先写个开篇,打算近期写写相关文章。就当是学习笔记吧。。
==================================================================

FreeMarker概述 
         FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写

FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)

FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件

FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境

FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库

FreeMarker是免费的

1、通用目标

能够生成各种文本:HTML、XML、RTF、Java源代码等等

易于嵌入到你的产品中:轻量级;不需要Servlet环境

插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等

你可以按你所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器

2、强大的模板语言

所有常用的指令:include、if/elseif/else、循环结构

在模板中创建和改变变量

几乎在任何地方都可以使用复杂表达式来指定值

命名的宏,可以具有位置参数和嵌套内容

名字空间有助于建立和维护可重用的宏库,或者将一个大工程分成模块,而不必担心名字冲突

输出转换块:在嵌套模板片段生成输出时,转换HTML转义、压缩、语法高亮等等;你可以定义自己的转换

3、通用数据模型

FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量方式在模板中显示

你可以使用抽象(接口)方式表示对象(JavaBean、XML文档、SQL查询结果集等等),告诉模板开发者使用方法,使其不受技术细节的打扰

4、为Web准备

在模板语言中内建处理典型Web相关任务(如HTML转义)的结构

能够集成到Model2 Web应用框架中作为JSP的替代

支持JSP标记库

为MVC模式设计:分离可视化设计和应用程序逻辑;分离页面设计员和程序员

5、智能的国际化和本地化

字符集智能化(内部使用UNICODE)

数字格式本地化敏感

日期和时间格式本地化敏感

非US字符集可以用作标识(如变量名)

多种不同语言的相同模板

6、强大的XML处理能力

<#recurse> 和<#visit>指令(2.3版本)用于递归遍历XML树

在模板中清楚和直觉的访问XML对象模型

FreeMaker开篇相关推荐

  1. 一步步学敏捷开发:开篇

    一步步学敏捷开发:开篇 http://www.cnblogs.com/jetlian/p/3913687.html

  2. 【天命奇御】成就进度62/71的通关攻略(1·开篇前言)

    天命奇御于2018.8.9号在wegame上发售 先是一周目记录: 可以说一周目是熟悉最终boss技能后,靠技术过的...... 然后是二周目记录: 开篇前言: 转载于:https://www.cnb ...

  3. 开篇第一题:经典中的经典!

    开篇第一题:经典中的经典!                          --评<编程之美> 原贴地址:http://www.douban.com/review/2130819/ 应该 ...

  4. Silverlight实例教程 - Validation数据验证开篇

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  5. 精通Zookeeper系列开篇:进大厂不得不学的分布式协同利器!

    最近,有很多小伙伴让我更新一些Zookeeper的文章,正好也趁着清明假期把之前自己工作过程当中总结的Zookeeper知识点梳理了一番,打算写一个[精通Zookeeper系列],希望能够帮助小伙伴们 ...

  6. duilib 预开篇

    曾几何时,当我看到好看的windows 软件界面时,也想亲手写出这么绚丽好看的界面. 于是我就到处寻找windows UI编程教程.在一番查找和比较下,最终选择了duilib. 主要考虑到了duili ...

  7. 创业公司如何做数据分析(一)开篇

    在过去的一年里,笔者加入了一家移动互联网创业公司,工作之一便是负责数据业务的建设,陆陆续续完成了一些数据系统的实现,来满足公司的数据需求.在创业公司中做数据相关的事情,而且是从零做起,肯定不像很多大公 ...

  8. 《从零构建前后分离web项目》:开篇 - 纵观WEB历史演变

    开篇 : 纵观WEB历史演变 在校学习和几年工作工作中不知不觉经历了一半的 WEB 历史演变.对近几年的发展比较了解,结合经验聊聊 WEB 发展历史. 演变不易,但也是必然,因为为人始终要进步. WE ...

  9. .NET Core IdentityServer4实战-开篇介绍与规划

    一.开篇寄语 由于假期的无聊,我决定了一个非常有挑战性的活动,也就是在年假给大家带来一个基于OAuth 2.0的身份授权框架,它就是 IdentityServer4 ,如果没有意外的话,一定可以顺利的 ...

最新文章

  1. 一篇与众不同的 String、StringBuilder 和 StringBuffer 详解
  2. wpf里的menu怎么用_股市里的两市成交量是什么,它反映了什么,我是怎么用它来定投的...
  3. Linux cat指令(用于连接文件并打印到标准输出设备上)
  4. OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱
  5. android 垂直 SeekBar 源代码(VerticalSeekBar)[转]
  6. 微软企业库5.0学习笔记(三十三)数据访问模块
  7. linux 脚本调用企业微信_shell脚本实现企业微信报警
  8. 如何借助大数据提升医疗质量管理
  9. 分屏如何保持运行状态_如何提升心理素质,在比赛中保持更好的状态
  10. 教你手工去迅雷广告『罗斌原创』
  11. 基于MyEclipse+Mysql+Tomcat+SSH开发的运动会管理系统
  12. Android开发丰富资源集锦
  13. 特征值和奇异值的关系
  14. 酒店行业如何借助无线认证提高营销能力
  15. 【数据结构】广义表的存储结构及基本运算(C语言)
  16. 如何关闭电脑自动更新?
  17. Oracle存储过程基本语法介绍-存储过程
  18. 小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案
  19. 移动SEO之页面优化
  20. WINDOWS10使用LPR方式连接网络打印机

热门文章

  1. QQ登录+分享+空间分享
  2. 使用OES纹理+GLSurfaceView+JNI实现基于OpenGL ES的播放器画面处理
  3. 计算机机房接地方案,机房防雷接地系统设计方案.doc
  4. Excel工具箱-方方格子
  5. ftp上传 防火墙的设置
  6. outlook邮件 css 不生效问题
  7. NTP8910A(内置DSP、10W双声道立体声 I2S数字功放芯片)
  8. 翻遍了整个知乎,终于找到了这套阿里Java面试指南,强烈建议社招程序员都看看
  9. redis redisson 分布式锁 WRONGTYPE Operation against a key holding the wrong kind of value
  10. iReport自定义快捷键