java - Apache Velocity 是否支持递归搜索模板?
问题描述
速度配置
resource.loader = file
file.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path = /path/to/templates
文件夹结构
- 模板/
- 顶级模板.vm
- 电子邮件模板/
- 电子邮件 1.vm
- 电子邮件 2.vm
- 网页模板/
- page-1.vm
- page-1.vm
代码片段
Velocity.mergeTemplate(templateName, "UTF-8", context, writer);
如果templateName是top-level-template.vm则 Velocity 会找到模板,但是如果它是email-1.vm或子目录中的任何其他模板,则 Velocity 会抛出ResourceNotFoundException。
我希望能够指定存储我的模板的根目录的路径,并让 Velocity 找到子目录下的所有模板。
是否有一些配置或ResourceLoader支持递归查找模板?
解决方案
如果您的结构使用子目录,只需在路径中使用它
email-templates/email-1.vm
如果您在不同的子文件夹中具有相同的文件名,那么header.vm
您建议的方法将失败
推荐阅读
- google-apps-script - 将文件从团队云端硬盘复制到我的云端硬盘 - 通用
- php - PHP 生成不重复的随机数,不为 mt_rand 循环,不使用 range() 和 shuffle()
- botframework - 在字典中上课
- android - 导航架构组件 - 新资源对话框没有导航图的导航资源类型
- outlook - Outlook 文件格式 (.msg) PidLidInternetAccountStamp 属性
- java - 部署在 tomcat 上的 Spring 应用程序 - org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer
- zeromq - 为什么 zmq ( inproc:// )-connection 的顺序很重要,不像 for ( tcp:// )?
- javascript - 一个语句中的字符串 toLowerCase 和包含
- oracle - 如何在具有多个连接的 Pl/SQL 中编写对象类型作为 out 参数的存储过程
- powershell - Groovy Powershell 和 AWS CLI 发电机数据库