使用Apache Velocity包含classpath中的模板

时间:2013-12-02 21:49:57

标签: java spring velocity

我得到一个ResourceNotFound异常,Velocity尝试使用#parse指令(和#include获得相同的东西)。我知道我的ClassPathResourceLoader配置正确,因为如果删除#parse指令,模板就可以正常生成。我试图包含的模板与正确呈现的模板位于同一个jar文件中,因此它也不是位置问题。

我从Velocity文档中了解到,模板必须位于TEMPLATE_ROOT中,您还可以同时注册FileResourceLoaderClasspathResourceLoader。我试过两个都无济于事。

我发现很难相信你不能将#include#parseClasspathResourceLoader一起使用,但我已经尝试了我能想到的一切。任何帮助是极大的赞赏。

2 个答案:

答案 0 :(得分:1)

好的,我明白了。即使#parse指令中包含的其他模板文件与包含#parse指令的模板位于同一目录中,我也需要添加路径(相对于jar文件的根目录)他们。

答案 1 :(得分:1)

或者,您可以将以下内容添加到velocity.properties以启用相对路径:

eventhandler.include.class = org.apache.velocity.app.event.implement.IncludeRelativePath