Velocity尝试使用#parse
指令时,我得到了一个ResourceNotFound
异常(#include
也得到了同样的结果)。我知道我的ClassPathResourceLoader
配置正确,因为如果我删除#parse
指令,模板就会呈现良好的效果。我试图包含的模板与正确渲染的模板在同一个jar文件中,所以这也不是位置问题。
我从Velocity文档中了解到,模板必须在TEMPLATE_ROOT
中,并且您还可以注册FileResourceLoader
和ClasspathResourceLoader
。我两种都试过了,但都无济于事。
我很难相信你不能把#include
或#parse
和ClasspathResourceLoader
一起使用,但我已经试过了我能想到的一切。非常感谢您的帮助。
或者,您可以将以下内容添加到velocity.properties以启用相对路径:
eventhandler.include.class = org.apache.velocity.app.event.implement.IncludeRelativePath
好的,我开始工作了。即使#parse
指令中包含的其他模板文件与包含#parse
指令的模板在同一目录中,我也需要向它们添加路径(相对于jar文件的根)。