ITKeyword,专注技术干货聚合推荐

注册 | 登录

Velocity

ybygjy 分享于 2013-03-31

推荐:Velocity实例

Velocity 是一个基于 Java 的通用模板工具,来自于 jakarta.apache.org 。 Velocity 的介绍请参考 Velocity -- Java Web 开发新技术。这里是它的一个应用示例。

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

对Velocity的几个关键点问题

1、Velocity是什么?

2、Velocity最佳实践?

3、Velocity使用场景?

4、Velocity在WebApp中的使用?

5、Velocity实践?

6、Velocity技术结构?

7、Velocity技术流程?

8、Velocity技术知识点?

综述

计算机生成了可选文字: Hl--rPRequest
5FonVardt0VieW
Ontroller
3.CallACtionWlth
FormBean
VieW
StrU污S6r甘16t
幻lejsp
JSP
幻leVm
ACtion
VeIOcity
JSSperjar
毒
velodty-str'Uts.jar
,'n.‘…叼.--.-..一
}C
沪:'..-....-.…‘:卜,.'‘…。:'.k,…‘。
2FillForm日ean
4CreateBUSineSS
oblects
MOdel
FOFm日ean
Businessobjec朽
6.Renderoutput
HTML
XML
丁XT
CSV

 

单实例还是多实例

Velocity#init是单实例模式,内部持有RuntimeSingleton#init()

Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM,this);

Velocity.init();

Template tmplate = Velocity.getTemplate("foo.vm");

 

VelocityEngine可扩展支持多实例模式,内部直接持有RuntimeInstance,每个VelocityEngine实例都有不同的RuntimeInstance。

VelocityEngine ve = new VelocityEngine();

ve.setProperty(VelocityEngine.RUNTIME_LOG_SYSTEM,this);

ve.init();

Template tmplate = ve.getTemplate("foo.vm");

 

资源的加载

计算机生成了可选文字: sourceLoader一or'.即ache
CIas,pathRe,ourceLoader
FileResourceLoader一or透
JarResourceLoader一or盆
Reeeee
白eA
田

加载文件路径以“,”分割

推荐:Velocity教程

[转载]Velocity教程 http://hi.baidu.com/bajnokliu/blog/item/e687060815d082c83ac763d4.html 2009-02-21 21:32 Velocity教程 2007-11-22 09:25 Velocity是一个

1、ClasspathResourceLoader,从ClassLoader#加载模版文件,类似org.ybygjy.HelloVelocity.vm,需要配置

resource.loader = class

class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader

2、FileResourceLoader,从操作系统的文件系统加载模版文件,可以配置Velocity.properties参数,系统默认加载方式。

file.resource.loader.path = <path to root of templates>

file.resource.loader.cache = true/false

file.resource.loader.modificationCheckInterval = <seconds between checks>

3、JarResourceLoader,从Jar文件中加载模版文件

resource.loader = jar
jar.resource.loader.class = org.apache.velocity.runtime.resource.loader.JarResourceLoader
jar.resource.loader.path = jar:file:/opt/myfiles/jar1.jar

4、WebappLoader,从Web容器上下文中加载模版文件

webapp.resource.loader.description = Velocity Web Resource Loader

webapp.resource.loader.class=org.ybygjy.velocity.loader.CustomerResourceLoader

webapp.resource.loader.path=.,vm

Velocity#与Web应用的集成

Velocity对Servlet的集成有两个基础性的Servlet

1、org.apache.velocity.servlet.VelocityServlet,这是个抽象类默认没有提供ToolBox的支持,相对VelocityViewServlet,此类比较没有太多优势,继承然后实现org.apache.velocity.servlet.VelocityServlet.handleRequest(HttpServletRequest, HttpServletResponse, Context)即可,Request和Response对象都存储在Context中,此类主要不方便的地方在于ServletContext上下文需要自己控制。

2、org.apache.velocity.tools.view.servlet.VelocityViewServlet,此类在velocity-tools包中,支持toolbox功能,通常velocity与Web应用的集成会优先选择它,通过扩展resource.loader可支持模板自动加载。

Velocity#ToolBox

ToolBox是Velocity#Tools功能,支持XML定义工具对象,这些对象服务于模板文件内容,ToolBox类似jsp体系下的JSTL。

ToolBox组件的初始和配置

这里涉及到因为版本迁移的关系有两种实现方式:

1、实现接口方式

1.1、实现org.apache.velocity.tools.view.tools.Configurable接口,用来支持对象实例在接收系统全局配置参数。

1.2、实现org.apache.velocity.tools.view.tools.ViewTool接口,用来支持对象实例初始化时接收ViewContext上下文

2、Velocity改良后使用org.apache.velocity.tools.view.ViewToolInfo类封装了具体ToolBox组件对象创建的生命周期,定义组件对象提供configuration(Map dataMap)和init(Object obj)方法,分别接收系统配置信息、ViewContext上下文信息。

 

参考资料

  1. http://turbine.apache.org/examples.html

推荐:velocity的应用

import java.io.BufferedWriter;import java.io.OutputStreamWriter;import java.util.HashMap;import java.util.Map;import java.util.Set;import or

对Velocity的几个关键点问题 1、Velocity是什么 2、Velocity最佳实践 3、Velocity使用场景 4、Velocity在WebApp中的使用 5、Velocity实践 6、Velocity技术结构 7、Velocity技术流程 8、V

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。