【发布时间】:2012-09-25 11:53:13
【问题描述】:
我正在尝试使用速度加载模板。我唯一拥有的是文件的路径。但我似乎无法用这个绝对路径加载文件。你需要怎么做?
文档对于阅读绝对模板非常模糊......
我正在尝试在 RCP 程序的插件中使用它
【问题讨论】:
标签: java apache plugins velocity rcp
我正在尝试使用速度加载模板。我唯一拥有的是文件的路径。但我似乎无法用这个绝对路径加载文件。你需要怎么做?
文档对于阅读绝对模板非常模糊......
我正在尝试在 RCP 程序的插件中使用它
【问题讨论】:
标签: java apache plugins velocity rcp
我认为您最好的选择是查看 Velocity 中的资源加载器概念。这是 Velocity 提供的从任意来源加载模板的方式。有关详细信息,请参阅文档 here。
您可以查看可用的方法以供参考。如果配置正确,有一个FileResourceLoader 可能完全符合您的需要。
如果这不起作用,您可以从基类 ResourceLoader 派生。然后,您的 ResourceLoader 将简单地从您传递给 getTemplate() 调用的名称映射到实际文件。
【讨论】:
将您的模板放在插件项目中的文件夹“templates/template1.vt”中,并确保将此文件夹添加到 build.properties 中。您可以尝试通过以下任一方式获取模板文件。
one:
URL url= Activator.getDefault().getBundle().getEntry("templates/template1.vt");
url = FileLocator.toFileURL(url);
File file = new File(url.toURI());
second:
url = new URL("platform:/plugin/<plugin id>/templates/template1.vt");
url = FileLocator.toFileURL(url);
File file = new File(url.toURI());
【讨论】: