2

我正在尝试以速度加载模板。我唯一拥有的是文件的路径。但我似乎无法用这个绝对路径加载文件。你需要怎么做?

文档对于阅读绝对模板非常模糊......

我正在尝试在 RCP 程序的插件中使用它

4

2 回答 2

1

将您的模板放在插件项目中的文件夹“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());
于 2012-09-25T14:42:08.640 回答
1

我认为您最好的选择是查看 Velocity 中的资源加载器概念。这是 Velocity 提供的从任意来源加载模板的方式。有关详细信息,请参阅此处的文档。

您可以查看可用的,以供参考他们是如何做到的。如果配置正确,有一个FileResourceLoader可能完全符合您的需要。

如果这不起作用,您可以从基础ResourceLoader类派生。然后,您的 ResourceLoader 将简单地从您传递给 getTemplate() 调用的名称映射到实际文件。

于 2012-09-30T07:20:08.613 回答