有谁知道是否可以通过速度从不同路径获取模板?初始化后 Velocity 拒绝更改“file.resource.loader.path”。
这是我的代码:
public Generator(){
Properties p = new Properties();
p.setProperty("resource.loader", "file");
p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
p.setProperty("file.resource.loader.path", "");
Velocity.init(p);
}
模板可以位于不同的位置(用户可以通过文件对话框选择一个)。所以我在从速度中获取模板时有这个代码
private Template fetch (String templatePath) {
out_println("Initializing Velocity core...");
int end = templatePath.lastIndexOf(File.separator);
Properties p = new Properties();
p.setProperty("file.resource.loader.path", templatePath.substring(0, end));
Velocity.init(p);
return Velocity.getTemplate(templatePath.substring(end+1));
}
这是行不通的。似乎一旦 Velocity 被初始化,它就不能用不同的属性重置。关于如何解决这个问题的任何建议?
可能的程序流程:
- 用户选择需要填写到模板中的组
- 用户选择要使用的模板(可以位于硬盘上的任何位置)
- 用户按下生成