我正在尝试使用velocity加载模板。我唯一拥有的是文件的路径。但我似乎无法用这个绝对路径加载文件。你怎么需要这样做?
关于阅读绝对模板的文档非常模糊....
我正在尝试在RCP程序的插件中使用它
答案 0 :(得分: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());
答案 1 :(得分:1)
我认为您最好的选择是查看Velocity中的Resource Loader概念。这是Velocity提供从任意来源加载模板的方式。有关详细信息,请参阅文档here。
您可以查看可用的参考资料,以获取参考资料。有一个FileResourceLoader,如果配置正确,可能正是您需要的。
如果这不起作用,您可以从基础ResourceLoader类派生。然后,您的ResourceLoader将简单地从您传递给getTemplate()的名称映射 - 调用实际文件。