您的位置:首页 > 编程语言 > Java开发

Java 基础三:使用Velocity模板生成 xml

2013-09-24 11:13 459 查看
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

现在我们就来看这个小例子:



1. 建立一个Velocity模板,以vm结尾,例子中模板文件为TaxReportXml.vm,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<html>
<head></head>
<body>
HELLO! $name,Welcome to velocity!
</body>
</html>

$name 为需要程序传入的参数。

2. 以下为 velocityTest的代码:

package velocity;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.MessageFormat;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.joda.time.DateTime;

public class VelocityTest {

/**
* @param args
*/
public static void main(String[] args) {
//得到VelocityEngine
VelocityEngine ve = new VelocityEngine();
//得到模板文件
Template template = ve.getTemplate("/src/velocity/TaxReportXml.vm", "UTF-8");
VelocityContext context = new VelocityContext();
//传入参数
context.put("name", "jacky");
try {
//生成xml
FileWriter fileWriter = getFileWriter("velocity_test.xml");
//调用merge方法传入context
template.merge(context, fileWriter);
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}

private static FileWriter getFileWriter(String fileName) throws IOException {
String fullPath = MessageFormat.format("{1}{0}{2}",
File.separator,
"d://",
fileName);
System.out.println("fileName = " + fullPath);
File outputFile = new File(fullPath);
return new FileWriter(outputFile);
}

}


看一下运行结果,在d:下的velocity_test.xml中:

<?xml version="1.0" encoding="utf-8"?>
<html>
<head></head>
<body>
HELLO! jacky,Welcome to velocity!
</body>
</html>

参数已经传到xml里了,很简单吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息