Java Apache Velocity支持递归搜索模板吗?

Java Apache Velocity支持递归搜索模板吗?,java,apache,velocity,Java,Apache,Velocity,速度配置 resource.loader = file file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader file.resource.loader.path = /path/to/templates 文件夹结构 模板/ top-level-template.vm 电子邮件模板/ email-1.vm email-2.vm 网页模板/ page-1.v

速度配置

resource.loader = file
file.resource.loader.class = 
org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path = /path/to/templates
文件夹结构

  • 模板/
    • top-level-template.vm
    • 电子邮件模板/
      • email-1.vm
      • email-2.vm
    • 网页模板/
      • page-1.vm
      • page-1.vm
代码片段

Velocity.mergeTemplate(templateName, "UTF-8", context, writer);
如果templateName为顶级-template.vm,则Velocity会查找该模板,但如果该模板为email-1.vm或子目录中的任何其他模板,则Velocity会抛出ResourceNotFoundException

我希望能够指定存储模板的根目录的路径,并让Velocity查找子目录下的所有模板


是否有一些配置或支持递归查找模板?

如果您的结构使用子目录,只需在路径中使用它即可

 email-templates/email-1.vm

如果您在不同的子文件夹中有相同的文件名,如
header.vm
,建议的方法将失败

是,如果两个模板共享相同的名称,则该方法将失败。我正在考虑实现一个定制的ResourceLoader,它要求所有模板名称都是唯一的。