论文导读::FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,采用纯JAVA语言编写。本文简要介绍了FreeMarker的核心概念及其特性,通过页面信息提示插件的开发和在Web系统中的应用,直观的阐述了Struts2利用FreeMarker模板开发Web插件的过程和方法以及在Web系统中应用所带来的便利和优点。
论文关键词:FreeMarker,Struts2,Web,插件,Web模板
1引言
当今世界,信息化在各行业之间可以说随处可见了,一般信息化包括硬件和软件两大块,与硬件技术发展的快速和成熟相比,软件的开发技术和流程还远远不够完善,虽然软件各方面的技术已经比以前有很大改善,但现在软件技术和功能还不能很好满足当今软件的规模和要求。最近几年时间毕业论文ppt,软件技术不断推陈出新,尤其是Web方面的技术。本文接下来要讲述的FreeMarker和Struts2就是Web表现层的技术,结合这两个技术开发一个页面信息提示的插件,可以通过标签引入形式复用到任何需要的页面上,从而简化页面开发难度和提高程序复用性以及可维护性。
2FreeMarker概述
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,它被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序,可以通过它获取所需数据并生成页面,FreeMarker更适合作为Model2框架(如Struts2)的视图组件。下面图1显示了FreeMarker模板引擎的工作机,其中Template file 就是FreeMarker的一个模板,Java object是一个为模板提供数据的对象,最后通过FreeMarker引擎输出页面代码论文网站。应该说FreeMarker功能是比较单一毕业论文ppt,就是负责提取底层数据生成文本并输出,不过它的以下一些特性使得它在Web程序中应用比较广泛,具体特性如下:
1)通用数据模型
FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量方式在模板中显示,可以使用抽象(接口)方式表示对象,告诉模板开发者使用方法,使其不受技术细节的打扰。
2)强大的模板语言
FreeMarker有自己的指令,使得模板有很强的控制能力,同时还有自己的命名空间避免名字的冲突。
3)简单的Web显示
分离可视化设计和应用程序逻辑,分离页面设计员和程序员。
4)强大的XML处理能力
用于递归遍历XML树,在模板中清楚和直接的访问XML对象模型。

图1 FreeMarker模板引擎工作机
3FreeMarker结合Struts2开发插件的过程
FreeMarker是一个功能很强的模板语言,可以直接通过它获取对象的数据。通过Struts2框架的插件扩展机制可以对模板进行封装制作成一个自己的插件,这样就可以在整个系统中使用。本文将以一个具体的例子来详细解析插件开发的过程及方法毕业论文ppt,同时简单阐述FreeMarker的原理机制和Struts2插件的使用方法,这个例子所要实现的功能是在页面弹出底层发送过来的各种消息,如:验证错误信息、逻辑错误信息、提示信息。整个插件的开发过程将分为模板编写、模板封装、插件配置、插件应用四步来解析说明。
3.1 模板编写
在这里,所有服务器抛出的信息将通过模板输出,FreeMarker具有很强的指令可以获取到业务模型的数据以及控制业务流程,比如<#list>命令可以遍历集合中的所有数据,<#if>是一个条件判断命令。下面我们给出了逻辑错误信息中的一段核心代码进行分析说明,以供理解和参考:
<#if parameters.msgtype == "error"><#t/>//根据参数判断信息类型
<#list actionErrors aserror><#t/>//遍历错误信息
<#assignmsg = "${msg}${error}
${parameters.msgsplit}"><#t/>//信息追加
</#list><#t/>
</#if><#t/>
${msg}//输出错误
以上就是模板编写的格式,编写完成以后保存为ftl后缀文件。FreeMarker包括指令、表达式、运算符、插补四大知识要点,详情可以查看相关资料说明论文网站。
3.2 模板封装
模板写好以后,可以通过Struts2框架的插件机制对模板进行封装,从而使得页面能够以标签形式引用处理。模板封装有两步主要任务要完成,一是通过Struts2组件提供的UIBean接口实现FreeMarker模板所需的数据模型,二是继承AbstractUITag抽象类实现标签属性映射的接口。
实现UIBean核心代码的说明和参考如下:
public class Message extends UIBean {//继承抽象类
private static final String TEMPLATE ="message/error";//指定模板位置
protected String getDefaultTemplate() { returnTEMPLATE;}//复写方法
public void evaluateExtraParams(){addParameter(paraValue,paraName);}//设置参数值
}
实现AbstractUITag核心代码的说明和参考如下:
public class MessageTag extends AbstractUITag {//继承抽象类
public Component getBean()//复写方法指定组件
protected void populateParams() {//复写方法给组件设置参数值
super.populateParams();//调用父类方法
Message msg =(Message) this.component;//获取组件对象
msg.set ParaName(paraValue);//给组件设置参数值}
}
3.3插件配置
前面已经把信息提示插件的主要功能已经完成了毕业论文ppt,现在要做就是把前面各部分的功能元素通过配置文件进行关联起来组成为一个可用标签插件。这里主要有两个配置文件要完成:一是通过struts-plugin.xml登记插件,二是在tld 文件中配置标签属性。详细配置如下:
<beantype="org.apache.struts2.views.TagLibrary" name="message" //登记插件为message
class="org.message.struts2.views.MessageTagLibrary"/>
<tag>
<name>message</name>//指定标签名称
<tag-class>org.message.struts2.views.jsp.ui.MessageTag</tag-class>//指定标签处理类
<attribute>//标签属性配置
<name>paraName</name>//指定属性名称
<required>false</required>//是否一定要
</attribute>
</tag>
3.4插件应用
通过前面插件配置生成了一个message信息提示标签插件,只要把前面相应的mytags.tld标签配置文件引入到页面,就可以使用信息提示标签,具体一个实例应用如下:
<%@ taglib prefix="err" uri="/mytags"%>//通过taglib把信息标签引入到所需页面
<err:message/>//在页面任何一个地方可以使用该标签来显示服务器响应的提示信息
从上面代码可以看到,通过插件的形式显示信息提示,大大简化了代码的复杂度以及提高了代码的可复用性,同时也有利于代码的维护。
4结束语
本文简要的讲述了FreeMarker结合Struts2框架开发标签插件的基本过程,这是软件开发过程中的技巧设计之一,真正的软件开发是一个很复杂的过程,它可能需要很多优秀设计技巧才能开发出一个实用稳定的系统。
参考文献:
[1]李刚.Struts 2 权威指南.北京:电子工业出版社,2007.
[2]Marty Hall等.Servlet与JSP核心编程.北京:清华大学出版社,2004.
|