Velocity中加载vm文件的三种方式:
a. 加载classpath目录下的vm文件
Properties p = new Properties(); // 加载classpath目录下的vm文件 // 这里是加载模板VM文件,比如:/META-INF/template/Web_B2CPayment.vm(请参考mas_spring_integration.xml) p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); p.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8"); p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8"); // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数 Velocity.init(p);
初始化成功后,使用:Velocity.getTemplate(templateFilePath); 加载文件!
b. 根据绝对路径加载 (vm文件置于硬盘某分区中,如:d:/template/test.vm)
Properties p = new Properties(); // 初始化默认加载路径为:D:/template p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, "D:/template") p.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8"); p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8"); // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数 Velocity.init(p);
初始化成功后,使用:Velocity.getTemplate("test.vm"); 加载文件!
c. 使用文本文件
首先定义一个velocity.properties文件
input.encoding = UTF-8 file.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
然后,已流的形式加载该文件
Properties p = new Properties(); // 加载properties文件 p.load(this.getClass().getResourceAsStream("/velocity.properties")); // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数 Velocity.init(p);
初始化成功后,使用:Velocity.getTemplate("test.vm"); 加载文件!
velocity定义了模板文件:*.vm,通过VelocityEngine加载该模板,以流的形式读取该模板,然后加载一个java对象,并将模板填充。
时间: 2024-10-25 02:04:42