velocity官网:http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html
在J2EE应用开发中,经常将Velocity模板文件打包在JAR文件中一起部署,但是[b]Velocity的缺省行为是从OS的文件系统中读取模板文件,使用FileResourceLoader来读取模板文件[/b]。
如果要改为从classpath中获取模板文件,那么要对Velocity的初始化参数进行调整:
VelocityEngine ve=new VelocityEngine();
//可选值:"class"--从classpath中读取,"file"--从文件系统中读取
ve.setProperty("[color=red]resource.loader[/color]", "class");
//如果从文件系统中读取模板,那么属性值为org.apache.velocity.runtime.resource.loader.FileResourceLoader
ve.setProperty("[color=red]class.resource.loader.class[/color]", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
ve.init();
Template t=ve.getTemplate("/vmpath/test.vm");
另外,Velocity缺省提供了多种读取模板的方法,列举如下,具体内容可以参考发布包中的Javadoc:
org.apache.velocity.runtime.resource.loader.DataSourceResourceLoader
org.apache.velocity.runtime.resource.loader.JarResourceLoader
org.apache.velocity.runtime.resource.loader.StringResourceLoader
org.apache.velocity.runtime.resource.loader.URLResourceLoader
velocity做为一种模板语言,在这个方面也具备自己的实现方式,那就是[color=red]velocimacro[/color]。
#velocitymacro 的模板
[color=red][b]velocimacro.library[/b][/color]=macros.vm
velocimacro.library.autoreload = true
在J2EE应用开发中,经常将Velocity模板文件打包在JAR文件中一起部署,但是[b]Velocity的缺省行为是从OS的文件系统中读取模板文件,使用FileResourceLoader来读取模板文件[/b]。
如果要改为从classpath中获取模板文件,那么要对Velocity的初始化参数进行调整:
VelocityEngine ve=new VelocityEngine();
//可选值:"class"--从classpath中读取,"file"--从文件系统中读取
ve.setProperty("[color=red]resource.loader[/color]", "class");
//如果从文件系统中读取模板,那么属性值为org.apache.velocity.runtime.resource.loader.FileResourceLoader
ve.setProperty("[color=red]class.resource.loader.class[/color]", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
ve.init();
Template t=ve.getTemplate("/vmpath/test.vm");
另外,Velocity缺省提供了多种读取模板的方法,列举如下,具体内容可以参考发布包中的Javadoc:
org.apache.velocity.runtime.resource.loader.DataSourceResourceLoader
org.apache.velocity.runtime.resource.loader.JarResourceLoader
org.apache.velocity.runtime.resource.loader.StringResourceLoader
org.apache.velocity.runtime.resource.loader.URLResourceLoader
velocity做为一种模板语言,在这个方面也具备自己的实现方式,那就是[color=red]velocimacro[/color]。
#velocitymacro 的模板
[color=red][b]velocimacro.library[/b][/color]=macros.vm
velocimacro.library.autoreload = true