【问题标题】:Does Apache Velocity support searching for templates recursively?Apache Velocity 是否支持递归搜索模板?
【发布时间】:2018-07-29 13:36:17
【问题描述】:

速度配置

resource.loader = file
file.resource.loader.class = 
org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path = /path/to/templates

文件夹结构

  • 模板/
    • 顶级模板.vm
    • 电子邮件模板/
      • email-1.vm
      • email-2.vm
    • 网页模板/
      • page-1.vm
      • page-1.vm

代码sn-p

Velocity.mergeTemplate(templateName, "UTF-8", context, writer);

如果 templateNametop-level-template.vm 则 Velocity 会找到模板,但是如果它是 email-1.vm 或任何子目录中的其他模板,然后 Velocity 会抛出 ResourceNotFoundException

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

有没有支持递归查找模板的配置或ResourceLoader

【问题讨论】:

    标签: java apache velocity


    【解决方案1】:

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

     email-templates/email-1.vm
    

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

    【讨论】:

    • 是的,如果两个模板共享相同的名称,它会失败。我正在考虑实现一个自定义 ResourceLoader,它要求所有模板名称都是唯一的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多