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对象,并将模板填充。
填充velocity模板,并输出模板内容,示例:
定义模板:
<?xml version=”1.0” encoding=“ISO-8859-1” ?>
<version>$!ceb9000.version</version>
<InstID>$!ceb9000.instID</InstID>
<trmSeqNum>$!ceb9000.trmSeqNum</trmSeqNum>
<tranDate>$!ceb9000.tranDate</tranDate>
<tranTime>$!ceb9000.tranTime</tranTime>
<tradeCode>$!ceb9000.tradeCode</tradeCode>
<servName>$!ceb9000.servName</servName>
<reserve1><![CDATA[$!ceb9000.reserve1]]></reserve1>
<reserve2><![CDATA[$!ceb9000.reserve2]]></reserve2>
<reserve3><![CDATA[$!ceb9000.reserve3]]></reserve3>
</head>
<operationDate>$!ceb9000.operationDate</operationDate>
<field1><![CDATA[$!ceb9000.field1]]></field1>
</body>
定义模板填充元素对应的Bean(部分代码,记得有get/set方法)
* 版本号,必填
private String version = "1.0.1";
* 机构号:必填
private String instID;
* 终端流水号:必填
private String trmSeqNum;
* 交易日期:必填
private String tranDate;
* 交易时间:必填
private String tranTime;
* 业务模型 --> 模板(xml) -->请求银行报文xml字符串
*