FreeMarker模板引擎在Ja开发中的应用

摘 要随着Ja语言的普遍应用,大量的基于Ja的开发程序孕育而生,为了简化程序员的开发工作,引入FreeMarker作为一个模板引擎,一个基于模板生成文本输出的通用工具,介绍其特性和应用实例.

关 键 词FreeMark;模板技术

中图分类号:TP393文献标识码:A文章编号:1671-7597(2013)21-0046-01

Ja语言是互联网诞生以来,最伟大的语言之一,Ja本就是为互联网而产生,如今在银行、电信、医疗各种领域都有普遍应用,Ja应用如此普遍给人的印象更多是强大,而如今互联网有一种走向就是个性化,每个人都需要展示自我,此时Ja还能否胜任呢?答案是肯定的,而FreeMarker是基于Ja开发的一个优秀的模板引擎,可以很完美的解决这个问题.

1FreeMarker的定义

FreeMarker是一个模版引擎,一个使用Ja编写,基于模版生成文本输出的通用工具.FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序.FreeMarkerj具备一定的编成能力,但一般ja程序准备要显示的数据,都由FreeMarker生成页面,并通过模版显示准备的数据.FreeMarker不是一个Web应用框架,而更适合作为一个Web应用框架的一个组件.


2FreeMarker的特性

1)通用性.能够按需要生成各种类型的文本,容易于嵌入到产品中,插件式模板载入器.

2)强大的模板语言.语法结构强大并且简单,支持常用的指令:if、elseif、elseinclude等;在模板中创建和改变变量,可以在任何地方使用复杂表达式来指定值;支持宏运算,可加载参数,并支持宏嵌套.

3)通用数据模型.为了是开发者不受技术细节的打扰,你可以使用抽象的方式表示对象,告之模板开发者使用.FreeMarker并不直接反射到Ja对象中,Ja对象通常通过插件式对象封装,以变量方式在模板中显示.

4)智能的国际化和本地化.数字格式本地化敏感,多种不同语言的相同模板.

3FreeMarker的用途

在软件开发的实际应用过程中,FreeMarker的用途大致如下.

1)作为模板输出不同的表现层.当后台数据对象和模板推送到FreeMarker模板引擎后,将自动被解析输出相应的前端表现,无论模板是怎样的表现,FreeMarker都可以完美的将动态数据解析输出,如此一来,我们可以通过简单的参数控制,将同一套业务数据输出到不同的模板,从而形成个性化的展示.

2)输出特定规格的数据.在不同的应用系统之间如果需要进行数据交换,一般可以采用XML数据格式,而一旦数据接口的规格确定,则必须按照约定的格式输出,此时FreeMarker可以作为输出XML规范数据的工具.

3)用于代码自动生成.当前流行的Ja开发框架,有很多种,例如Struts,Spring,Hibernate,Ibatis等,基于这些框架开发,目的自然是为了提升开发效率,但不同的模板基本上都按相同的模式做重复的工作,为了进一步提升开发的效率,可以考虑将开发基于自动生成的代码再编辑,其效率将得到大幅提升.基于这些开发框架一般都有多个层次,例如:action,impl,service,dao,vo,templates,config,可以采用不同的模板装载这些模板,并根据开发框架的规范定义编码规范,从而轻松实现代码自动生成的功能.

4FreeMarker的配置

使用FreeMarker框架之前,需要做一些配置工作,主要做做下面两件事.

1)复制freemarker.jar(在FreeMarker压缩文件包的lib目录中)到Web应用程序的WEB-INF/lib目录下.

2)将下面的代码添加到Web应用程序的WEB-INF/web.xml文件中.

freemarker

freemarker.ext.servlet.FreemarkerServlet

等等等等

freemarker

*.ftl

完成此配置后,即可通过freemarker解析所有.ftl模板文件了.

5模板应用实例

我们采用最简单的实例来说明FreeMarker的应用.例如:在用户登录后,显示欢迎信息.

Action层的Ja代码:

UserVouser等于(UserVo)Session.getAttribute(“user”);

//将用户对象推送到前端

Request.setAttribute(“user”,user);

//根据用户所选模板加载不同的模板

returnnewActionForward("/"+user.getTemplateid()+".tpl");

模板文件,有多个不同的模板文件,列举两个模板文件的代码:

Tpl-001.tpl代码如下:

${user.getRealname()},欢迎您!

Tpl-002.tpl代码如下:

Hello,${user.getRealname()}.

经过FreeMarker解析后,两个不同的用户看到的页面将分别是:

张三,他选择的模板是Tpl-001.tpl,他看到的界面是:张三,欢迎您!

Mary,她选择的模板是Tpl-002.tpl,她看到的界面是:hello,Mary.

很显然,同一套后台程序,由于采用FreeMarker不同的模板,而呈现不同的结果,满足了个性化的需求.

5结束语

FreeMarker目前仍然在不断完善中,其灵活的语法,强大的嵌套解析,国际标准化与本地化兼容,堪称比JSP更快的性能保障,以及不断提升的安全性,让FreeMarker具有更强大的生命力,在Ja开发中将发挥更大的作用.

类似论文

计算机软件开发中JA编程语言的应用

摘 要:伴随着JA编程语言的迅速发展壮大,其应用的范围越来越广泛 不仅仅包括小型的智能卡,还有大型企业的。
更新日期:2024-3-17 浏览量:45979 点赞量:11300

基于计算机软件开发的JA编程语言

【摘 要】随着我国经济的快速发展,科学技术也在不断进步 基于计算机软件开发的JA编程语言也迅速发展起来并๨。
更新日期:2024-10-2 浏览量:19041 点赞量:5681

基于计算机软件开发的JA编程语言

摘 要:Ja语言在计算机软件开发中,具有非常广阔的应用空间以及发展前景 Ja最大的优点,就是可。
更新日期:2024-5-4 浏览量:13206 点赞量:4514

新型模板体系开发与设计

摘 要随着经济全球化的不断发展,我国各个行业在面临机遇的同时也面临着挑战,建筑行业也不例外 在国际建筑行业中,模板工程。
更新日期:2024-3-11 浏览量:43477 点赞量:10268

探究JA语言的开发平台J2EE编程技术

摘 要:Ja是一种面向对象的编程语言,由于其具有诸多的优点,在目前的网络开发应用中具有。
更新日期:2024-10-22 浏览量:132419 点赞量:28788

Ja软件开发

摘 要:本文简要介绍了Ja软件开发中抽象数据转换的算法类型,程序设计方法,软件开发生命周期、软件开发各阶段的测试以及。
更新日期:2024-2-11 浏览量:28645 点赞量:6505