FreeMarker简介及插件安装

简介:

参考:http://www.oschina.net/p/freemarker


一、简介

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、通用目标

能够生成各种文本: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对象模型

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

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


二、Eclipse插件安装配置

有关插件安装的官方指导,请参考:


对于 Eclipse (tried with 3.x)  请下载以下插件,并解压到eclipse的plugins目录下,重启eclipse即可。
点击下载:fm-eclipse-help.tar.gz


对于Eclipse 3.2.1+,freemaker插件已经作为jboss tools的一个子集。你可以单独安装其中的freemaker插件。

a、针对eclipse不同版本,获取update site地址。

Update Sites

To install via update site, simply right-click the link below from which you'd like to install, copy the link, and paste it into Eclipse's Update or Install Manager. See Installing JBoss Tools for more information.











以eclipse4.2 为, update site地址为:http://download.jboss.org/jbosstools/updates/stable/juno/


2、选择单独安装freemaker插件






安装完成后,重启下eclipse即可。


相关文章
|
存储 文字识别 算法
文字识别OCR常见问题之图片超过40M不返回结果如何解决
文字识别OCR(Optical Character Recognition)技术能够将图片或者扫描件中的文字转换为电子文本。以下是阿里云OCR技术使用中的一些常见问题以及相应的解答。
788 2
|
存储 JSON 算法
无懈可击的身份验证:深入了解JWT的工作原理
无懈可击的身份验证:深入了解JWT的工作原理
1800 0
|
7月前
|
监控 前端开发 BI
如何开发研发项目管理中的缺陷管理板块?(附架构图+流程图+代码参考)
本文介绍了如何构建一个系统化的缺陷管理模块,以解决中小企业在缺陷管理上的混乱现状。通过建立“发现—修复—验证—关闭”的闭环流程,实现缺陷的可视化、可追溯和可统计管理,从而降低退货率、客户投诉与运维成本。内容涵盖缺陷管理功能详解、业务流程、数据模型设计、后端与前端参考代码、开发技巧与落地建议、上线后的指标与运营建议,以及从 MVP 到生产的实施路线。目标是让每个缺陷都有归属、状态清晰,并能通过看板快速识别阻塞点与风险,提升团队协作效率与产品质量。
|
7月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
584 16
|
11月前
|
传感器 数据采集 算法
《边缘算力困局突破:智能体模型动态调度全解析》
边缘设备如智能摄像头、传感器等在生活和生产中广泛应用,但其算力有限,难以高效运行复杂智能体模型。为解决这一问题,动态调度策略应运而生。通过任务优先级调度、模型分区与动态加载以及基于网络状态的调度,可灵活调整资源分配,优化任务执行效率。这些策略确保高优先级任务优先处理,按需加载模型模块,并根据网络状况合理分配计算任务。然而,动态调度面临实时监测和额外开销等挑战,需要优化算法和技术支持。成功实现动态调度将推动边缘计算在自动驾驶、智能安防、医疗等领域发挥更大潜力,带来深远变革。
409 6
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
17492 7
|
应用服务中间件 nginx 开发者
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
最近一段时间 Docker 镜像一直是 Pull 不下来的状态,感觉除了挂🪜,想直连 Docker Hub 是几乎不可能的。更糟糕的是,很多原本可靠的国内镜像站,例如一些大厂和高校运营的,也陆续关停了,这对我们这些个人开发者和中小企业来说是挺难受的。之前,通过这些镜像站,我们可以快速、方便地获取所需的 Docker 镜像,现在这条路也不行了。感觉这次动作不小,以后想直接访问 Docker Hub 是不可能了。所以我们得想办法搭建自己的私有镜像仓库。
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
|
网络虚拟化 网络架构
三层交换机的详细配置步骤
三层交换机的详细配置步骤 1、三层交换机 三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。
4162 0
Swagger2 常用注解介绍
Swagger2 常用注解介绍
795 3
|
Java Go PHP
Go - 关于 protoc 工具的小疑惑
Go - 关于 protoc 工具的小疑惑
196 0

热门文章

最新文章