http://blog.sina.com.cn/s/blog_474b6c1b010000x1.html
FreeMarker介绍(译文) (2005-12-13 15:42:59)
分类:技术类
什么是FreeMarker
FreeMarker 是一个“模板引擎” ; 一个可用来生成基于模板的文本的工具。
这些文本包括从HTML到自动生成的源文件几乎所有文本。它是一个java包,一个java开发者的类库。它本身不是一个面向终端用户的应用程序,而是程序员可以将其嵌入到他们产品中的一个组件。
FreeMarker在生成HTML WEB页面上面更有实效,尤其是那些遵从MVC模式、基于serverlet的应用程序。MVC模式可以使你将页面设计人员和程序开发人员分离,从而使各人更加专注在他的专长上面。页面设计人员可以改变页面的外观样式而不需要程序开发人员进行修改和从新编译代码,因为应用逻辑(java程序)和页面设计(freemarker 模板)是分离的。模板不会因为受到复杂的代码片断的影响。即便对于页面设计人员和程序开发人员为同一个人的项目,这样的分离也是有用的,因为这有利于保证代码的整洁和便于维护。
虽然FreeMarker具有编程的能力,但它不是象PHP一样完善的编程语言。相反,java程序准备页面要显示的数据,FreeMarker仅仅是生成这些页面来显示已经准备好的数据
FreeMarker并非一个web应用框架;它作为web应用框架中的一个组件或许更适合,但是
FreeMarker引擎本身对于HTTP或者servelet一无所知。它只负责生成文本。当然,它在非web应用程序中也可以使用的非常好。但是,注意,我们对于那些将freemarker用作VIEW组件的应用提供了out-of-the-box解决方案,从而可以在模板中嵌入jstl 标签。
参考:http://freemarker.sourceforge.net/
参考:FreeMarker VS. Velocity
http://www.blogjava.net/Struts2/archive/2007/04/11/109922.html
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对象模型
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yyg_juke/archive/2008/07/30/2741953.aspx
分享到:
相关推荐
在Web开发中,Freemarker被广泛应用于MVC框架,如Spring MVC,来生成动态视图。以下是对Freemarker核心特性和用法的详细说明: 1. **指令和函数调用**: - `<#...>` 和 `<@.../>` 是Freemarker中的指令和函数调用...
介绍Freemarker模板引擎原理和使用,很适合初学者,Freemarker是一个不错的模板引擎。
Freemarker是一种强大的模板引擎,广泛应用于Web开发中,它能够将动态数据转换为静态页面,使得前后端的开发更加高效且分离。Freemarker的灵活性和易用性使其成为初学者快速上手的理想选择,同时也深受专业开发者的...
- **手册结构**:根据给出的文档目录部分,我们可以看出FreeMarker手册包含了前言、FreeMarker介绍等内容。这表明文档会从基础知识入手,逐步深入讲解FreeMarker的各种特性和用法。 - **阅读建议**:对于初学者而言...
FreeMarker介绍** FreeMarker是一个与语言无关的模板引擎,主要用于生成HTML、XML或任何其他文本格式的文档。它将数据模型与模板结合,生成最终的输出。在Java世界中,FreeMarker常用于Web应用中的视图层,比如在...
### FreeMarker使用详解 #### 一、快速入门:模板+数据模型=输出 FreeMarker是一种强大的模板引擎,专为Web开发设计,它基于一个核心理念:设计者和程序员应专注各自的专业领域,即设计者负责视觉表现,如HTML、...
以上是对Velocity和FreeMarker的基本介绍和比较,它们都是Java Web开发中的重要工具,理解它们的特性和应用场景有助于选择最适合项目的技术栈。对于标签“源码”和“工具”,我们可以进一步研究这两个模板引擎的源...
同时,手册还会详细介绍如何配置和优化Freemarker以适应你的项目需求。 其次,`freemarker 插件 安装提示.txt`文件很可能是MyEclipse编辑器中安装Freemarker插件的步骤指南。MyEclipse是一款集成开发环境,对于Java...
- **数据模型一览**:详细介绍了FreeMarker支持的各种数据类型,包括基本类型(如字符串、数字)、复杂类型(如列表、哈希表)、以及特殊类型(如日期、时间)。 - **模板一览**:提供了关于模板语法的详细介绍,...
这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的场景中非常有用。 首先,让我们了解FreeMarker。FreeMarker是一个基于模板的语言,...
本教程将基于提供的"freemarker编辑器"来详细介绍如何配置和使用Freemarker,以及它在实际开发中的应用。 一、Freemarker简介 Freemarker是一个开源的、基于Java的模板引擎,它能够将设计人员的模板与程序逻辑分离...
入门文档会详细介绍Freemarker的安装、配置、模板语法以及如何在Java项目中集成。文档会讲解如何创建数据模型,设置Freemarker环境,并解释如何编写模板文件。此外,它还会提供关于模板设计模式和最佳实践的指导。 ...
这份手册通常会详细介绍Freemarker的基本概念,如模板语言、模板数据模型以及模板的执行流程。其中,可能会讲解模板元素,如`<#if>`、`<#foreach>`等控制结构,以及`${expression}`这样的变量引用方式。此外,还会...
下面将详细介绍如何在Spring MVC项目中集成并使用Freemarker。 1. **环境配置**: - 首先,确保项目已经引入了Spring MVC和Freemarker的相关依赖库,如`spring-webmvc`和`freemarker`。 - 在Spring的配置文件...
下面将详细介绍Freemarker的核心概念、配置、语法以及常见使用场景。 **1. Freemarker核心概念** - **模板(Templates)**:Freemarker的核心是模板文件,它定义了页面的布局和样式,包含变量和控制结构。 - **数据...
本实例将详细介绍如何在Freemarker中遍历list集合,帮助你理解和应用这一核心功能。 在Freemarker中,遍历list集合主要依赖于`<#list>`指令。当你有一个Java对象,例如一个ArrayList或LinkedList,这些对象在...
《freemarker中文手册文档.doc》是Freemarker的中文参考手册,详细介绍了Freemarker的语法、配置、API以及最佳实践。手册中,你可以了解到: 1. **基本语法**:Freemarker使用简单的模板语言,主要包括变量表示(${...