我正在尝试以速度加载模板。我唯一拥有的是文件的路径。但我似乎无法用这个绝对路径加载文件。你需要怎么做?
文档对于阅读绝对模板非常模糊......
我正在尝试在 RCP 程序的插件中使用它
将您的模板放在插件项目中的文件夹“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());
我认为您最好的选择是查看 Velocity 中的资源加载器概念。这是 Velocity 提供的从任意来源加载模板的方式。有关详细信息,请参阅此处的文档。
您可以查看可用的,以供参考他们是如何做到的。如果配置正确,有一个FileResourceLoader可能完全符合您的需要。
如果这不起作用,您可以从基础ResourceLoader类派生。然后,您的 ResourceLoader 将简单地从您传递给 getTemplate() 调用的名称映射到实际文件。