FreeMaker开篇
偶然接触到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开篇相关推荐
- 一步步学敏捷开发:开篇
一步步学敏捷开发:开篇 http://www.cnblogs.com/jetlian/p/3913687.html
- 【天命奇御】成就进度62/71的通关攻略(1·开篇前言)
天命奇御于2018.8.9号在wegame上发售 先是一周目记录: 可以说一周目是熟悉最终boss技能后,靠技术过的...... 然后是二周目记录: 开篇前言: 转载于:https://www.cnb ...
- 开篇第一题:经典中的经典!
开篇第一题:经典中的经典! --评<编程之美> 原贴地址:http://www.douban.com/review/2130819/ 应该 ...
- Silverlight实例教程 - Validation数据验证开篇
Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...
- 精通Zookeeper系列开篇:进大厂不得不学的分布式协同利器!
最近,有很多小伙伴让我更新一些Zookeeper的文章,正好也趁着清明假期把之前自己工作过程当中总结的Zookeeper知识点梳理了一番,打算写一个[精通Zookeeper系列],希望能够帮助小伙伴们 ...
- duilib 预开篇
曾几何时,当我看到好看的windows 软件界面时,也想亲手写出这么绚丽好看的界面. 于是我就到处寻找windows UI编程教程.在一番查找和比较下,最终选择了duilib. 主要考虑到了duili ...
- 创业公司如何做数据分析(一)开篇
在过去的一年里,笔者加入了一家移动互联网创业公司,工作之一便是负责数据业务的建设,陆陆续续完成了一些数据系统的实现,来满足公司的数据需求.在创业公司中做数据相关的事情,而且是从零做起,肯定不像很多大公 ...
- 《从零构建前后分离web项目》:开篇 - 纵观WEB历史演变
开篇 : 纵观WEB历史演变 在校学习和几年工作工作中不知不觉经历了一半的 WEB 历史演变.对近几年的发展比较了解,结合经验聊聊 WEB 发展历史. 演变不易,但也是必然,因为为人始终要进步. WE ...
- .NET Core IdentityServer4实战-开篇介绍与规划
一.开篇寄语 由于假期的无聊,我决定了一个非常有挑战性的活动,也就是在年假给大家带来一个基于OAuth 2.0的身份授权框架,它就是 IdentityServer4 ,如果没有意外的话,一定可以顺利的 ...
最新文章
- 一篇与众不同的 String、StringBuilder 和 StringBuffer 详解
- wpf里的menu怎么用_股市里的两市成交量是什么,它反映了什么,我是怎么用它来定投的...
- Linux cat指令(用于连接文件并打印到标准输出设备上)
- OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱
- android 垂直 SeekBar 源代码(VerticalSeekBar)[转]
- 微软企业库5.0学习笔记(三十三)数据访问模块
- linux 脚本调用企业微信_shell脚本实现企业微信报警
- 如何借助大数据提升医疗质量管理
- 分屏如何保持运行状态_如何提升心理素质,在比赛中保持更好的状态
- 教你手工去迅雷广告『罗斌原创』
- 基于MyEclipse+Mysql+Tomcat+SSH开发的运动会管理系统
- Android开发丰富资源集锦
- 特征值和奇异值的关系
- 酒店行业如何借助无线认证提高营销能力
- 【数据结构】广义表的存储结构及基本运算(C语言)
- 如何关闭电脑自动更新?
- Oracle存储过程基本语法介绍-存储过程
- 小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案
- 移动SEO之页面优化
- WINDOWS10使用LPR方式连接网络打印机
热门文章
- QQ登录+分享+空间分享
- 使用OES纹理+GLSurfaceView+JNI实现基于OpenGL ES的播放器画面处理
- 计算机机房接地方案,机房防雷接地系统设计方案.doc
- Excel工具箱-方方格子
- ftp上传 防火墙的设置
- outlook邮件 css 不生效问题
- NTP8910A(内置DSP、10W双声道立体声 I2S数字功放芯片)
- 翻遍了整个知乎,终于找到了这套阿里Java面试指南,强烈建议社招程序员都看看
- redis redisson 分布式锁 WRONGTYPE Operation against a key holding the wrong kind of value
- iReport自定义快捷键