我得到一个ResourceNotFound
异常,Velocity尝试使用#parse
指令(和#include
获得相同的东西)。我知道我的ClassPathResourceLoader
配置正确,因为如果删除#parse
指令,模板就可以正常生成。我试图包含的模板与正确呈现的模板位于同一个jar文件中,因此它也不是位置问题。
我从Velocity文档中了解到,模板必须位于TEMPLATE_ROOT
中,您还可以同时注册FileResourceLoader
和ClasspathResourceLoader
。我试过两个都无济于事。
我发现很难相信你不能将#include
或#parse
与ClasspathResourceLoader
一起使用,但我已经尝试了我能想到的一切。任何帮助是极大的赞赏。
答案 0 :(得分:1)
好的,我明白了。即使#parse
指令中包含的其他模板文件与包含#parse
指令的模板位于同一目录中,我也需要添加路径(相对于jar文件的根目录)他们。
答案 1 :(得分:1)
或者,您可以将以下内容添加到velocity.properties以启用相对路径:
eventhandler.include.class = org.apache.velocity.app.event.implement.IncludeRelativePath