Java模板引擎 FreeMarker

Java模板引擎 FreeMarker

BSD
Java
跨平台
2008-09-07

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

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

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



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

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

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

FreeMarker是免费的

而且你还可以通过Eclipse的插件来编辑FreeMarker,经过验证,FreeMarker 最好的 Eclipse 编辑插件是 JBoss Tools

FreeMarker特性

1、通用目标

能够生成各种文本:HTMLXMLRTFJava源代码等等

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

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

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

2、强大的模板语言

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

在模板中创建和改变变量

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

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

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

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

3、通用数据模型

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

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

4、为Web准备

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

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

支持JSP标记库

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

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

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

数字格式本地化敏感

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

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

多种不同语言的相同模板

6、强大的XML处理能力

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

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

开源论坛 JForum 就是使用了 FreeMarker 做为页面模板。

Javadoc:http://www.ostools.net/apidocs/apidoc?api=freemarker

加载中

评论(7)

昕友软件
性能不错,中文文档齐全
青宇0223
青宇0223
ftl文件必须放在WEB-INF下?放resource下就不行,否则配置参数template_update_delay就不管用,好无奈,不知道是不是自己操作问题,templateLoaderPaths这个配置是假的么
only-onezy
only-onezy
谢了
MartinBockZhu
MartinBockZhu
青木河
青木河
Hello , Beetl FreeMarker 。Bye, Velocity
isam
isam
FreeMarker 和 Velocity 能有一个对比参照的文章就更好了 FreeMarker
morem
morem
blog FreeMarker

FreeMarker 2.3.28 发布,已成为 Apache 基金会顶级项目

FreeMarker 2.3.28 发布了,该版本包含众多的改进,包括 FTL 增加了不少新变量以及一些内建操作符;另外在 Java 侧也得到了很多改进,详细的内容请看 https://freemarker.apache.org/docs/v...

2018/04/05 18:32

Apache FreeMarker 2.3.26-incubating,Java 模板引擎

Apache FreeMarker 2.3.26-incubating 发布了,这是一个稳定版,加上 "incubating" 是因为 Apache 软件基金会的要求(孵化中的项目),直到该项目成为完全接受(毕业的)Apache 项目为止。关...

2017/03/27 07:14

FreeMarker 加入 Apache 孵化,发布 2.3.25 版本

Freemarker 模板引擎宣布加入 Apache 基金会的孵化计划。加入后发布了首个更新版本 2.3.25 ,该版本改进内容包括: 扩展 list 指令用于支持哈希数据的处理,例如:<#list map as k, v>${k}: ...

2016/07/09 07:44

FreeMarker 2.3.23 发布,Java 模板引擎

按照计划,FreeMarker 2.3.23 版正式发布,在模版和 Java 处理上有很多改动,更新日志: FTL 方面的改进 Listing (#list) has received some specialized convenience features that target...

2015/07/06 06:49

FreeMarker 2.3.23 RC1 发布,Java 模板引擎

FreeMarker 2.3.23 RC1 发布,最终版本计划 7 月 5 日发布! 值得关注的改进 (完整文档请看这里): Listing-related (#list) specialized convenience features that target some of the mos...

2015/06/22 08:11

FreeMarker 2.3.22 版本发布,Java 模板引擎

FreeMarker 2.3.22 版本发布,值得关注的特性: DefaultObjectWrapper 改进 (mostly on the field of Map and List wrapping), enabled by incompatible_improvements 2.3.22. 改进 Freemark...

2015/06/09 14:56

FreeMarker 2.3.20 发布,Java 模板引擎

FreeMarker 2.3.20 改进了错误提示信息,更好的 boolean 格式化,更高的多核处理器下的性能以及其他很多的小改进和 bug 修复。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工...

2013/06/29 07:54

FreeMarker 2.3.19 发布

FreeMarker 可是难道更新一次啊,这次更新版本是在 2月29日发布的。 该版本修复了两个重要的安全 bug,详情请看这里。另外新增对 JSON 字符串进行处理的方法 json_string.还有其他方面的小改...

2012/03/06 10:52

FreeMarker 2.3.18 发布

FreeMarker 突然变得勤快起来,前些天刚发布的 2.3.17 版本,因为存在一个跟 JSP 标签库相关的bug,该版本主要是修复了这个bug。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用...

2011/05/22 19:06

没有更多内容

加载失败,请刷新页面

5
回答
freemarker word 导出

类似这种word 我怎么样能够保证格式不变化?感觉要每一行去算距离然后在算文字距离,最后在导出数据.有点难受啊。大佬们有没有什么好点的解决方案?

02/20 15:37
5
回答
springboot前后端分离

默默的问一句,现在的工程都已经实现前后端分离了,那么springboot工程中也就不需要在集成模板引擎了,页面相关的都给前端做了,后端只负责提供接口就行了...

01/16 10:04
1
回答
为什么 在idea中我的ftl文件中 代码不高亮

在哪设置 ,才能让ftl中代码高亮显示,识别freemarker的指令

2018/12/11 20:24
1
回答
为什么beetl那么厉害。

叮嘱各位一句,不能再beetl群里讨论除了beetl其他的任何技术。 不然你会被踢出去。 切记 不能提thymeleaf和springboot的关系。

2018/11/22 09:01
3
回答
springboot+freemarker国际化问题

最近用springboot+freemarker搭建一个项目,要引入国际化。就使用springMVC的标签,已经引入了spring.ftl文件,但是还是一...

2018/10/12 15:25
3
回答
springboot + freemarker 如何配置全局变量 ?

页面中 可以直接使用 ${} 的形式获取

2018/03/29 10:22
13
回答
为什么要使用JSP模板引擎

至今搞不懂为什么要用模板引擎像 FreeMarker , Velocity 等等,JSP加EL、JSTL、OGNL已经能解决了,并且像JSTL里面跟SQL...

2012/12/10 13:55
7
回答
freemarker生成docx,打开出现内容有错误

我用freemarker生成doc文件可以,但是生成docx文件后打开显示“文件已损坏,无法打开”。 我的步骤是:新建word2007文件,设置格式,另存...

2013/04/10 22:18
2
回答
FreeMarker 页面怎么对session的值进行判断
using 的回答 2018/05/09 18:21
最佳答案
<#if Session.对象.对象里的属性 == "字符串"> </#if>
3
回答
为什么使用Freemarker将html导出成doc文档,有些人使用WPS打开文件会乱码???

service层代码如下: @Override public InputStream exportWord0(RequestServer requestS...

2018/03/23 16:19

没有更多内容

加载失败,请刷新页面

FreeMarker在eclipse中的入门例子

今天海浪为大家分享一个FreeMarker在eclipse中的入门例子。 一、在eclipse中创建FreeMarker模板 在FreeMarker中模板的概念就是:包含一些由${…}包围的特殊代码的文件。这些特殊代码是FreeM...

2011/04/26 09:39
892
0
freemarker学习笔记

Freemarker是一个模版引擎,一个基于模版生成文本输出的工具。通过java程序准备要显示的数据,由freemarker生成页面,再由模版显示准备的数据,它和jsp最大的区别就是,freemarker可以以近似...

2012/07/25 19:55
913
3
Eclipse安装Freemarker Editor插件

Eclipse安装Freemarker Editor插件

2015/02/10 14:07
13.2K
0
Hello FreeMarker

官方地址:http://www.freemarker.org/ 下载地址:http://sourceforge.net/projects/freemarker/files/freemarker/2.3.18/freemarker-2.3.18.tar.gz/download 1.解压后:freemarker-2.3.18\e...

2012/01/07 23:11
124
0
freemaker开发学习《一》

freemaker的入门实例

2014/04/25 22:43
259
0
FreeMarker配置详解

首先需要添加freemarker.jar到项目,如果项目中有spring或者spirngmvc,需要整合,首先配置freemarkerConfig,代码结构如下:         <!-- 设置freeMarker的配置文件路径 --> <b...

2014/08/12 18:09
36.7K
7
FreeMarker快速搭建

### FreeMarker [FreeMarker中文官方参考手册](http://freemarker.foofun.cn/) 本文copy自:[原贴](https://segmentfault.com/a/1190000011768799) [原作者](https://segmentfault.com/u/it...

2018/04/16 16:59
3
0
分享Struts2与Freemarker的配置方法

刚才在OECP社区看到一篇文章,《Struts2与Freemarker的配置方法》觉得很好,所以转发给大家分享一下。 Freemarker是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不...

2011/05/16 10:19
490
0
FreeMarker在eclipse中的入门例子

刚接触 FreeMarker时,只是简单的了解 FreeMarker的一些概念及工作原理,至于如何使用 FreeMarker还不是非常清楚。随着学习的深入,才渐渐对 FreeMarker有了更深入的理解。本文将从基础应用着...

2011/05/16 09:28
633
0
Eclipse安装Freemarker插件

Eclipse安装Freemarker插件

2015/05/13 09:22
69
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部