java - 额外速度引擎输出

标签 java velocity

我有各种代表电子邮件的 Velocity 模板文件。我正在寻找一种优雅的方式来允许模板文件输出消息的主题行以及内容。我考虑了几个选择:

  1. 使输出的第一行类似于“Subject: Bla”,并在 Java 中将其删除。我拒绝了这种方法,因为从 Java 执行花哨的字符串操作正是我首先尝试使用 Velocity 解决的问题。

  2. 将一个可设置对象放入映射中,以便 Velocity 宏中的某些代码调用 setter 。优点:非常简单。缺点:我不喜欢从 Velocity 设置外部对象的想法,即使只是作为一种输出形式。不过,这可能是一种无理的厌恶。

  3. 创建一些自定义 Velocity 命令,例如#setSubjectLine。优点:更优雅。缺点:将作为有效命令应用于我的所有模板,无论它们是否是电子邮件。

  4. 主题行和电子邮件的其余部分有单独的模板文件。优点:根本没有什么特殊技巧!缺点:并非所有电子邮件逻辑都位于同一个地方。

  5. 一些我不知道的很酷的速度技巧。

  6. ???

那我该怎么办呢?你有5个还是6个的建议吗?我应该选择 1、2、3 或 4 的原因是什么?

最佳答案

2) Throw a settable object into the mapping for some code in the Velocity macro to call a setter on. Pros: Pretty simple. Cons: I dislike the idea of setting external objects from Velocity, even as just a form of output. It might be an unreasonable dislike, though.

这是我的方法,尽管我一开始也有类似的疑虑,但我对此很满意。我什至以这种方式设置字符编码和其他属性。这会将模板的其余部分保留为消息正文。再次,我很高兴。

#set ( $myAtts.encoding = "utf-8" )
#set ( $myAtts.from = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="10636465507e7f67787562753e7e7564" rel="noreferrer noopener nofollow">[email protected]</a>" )

关于java - 额外速度引擎输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085633/

相关文章:

java - 我在 eclipse 中收到错误,提示 Jar 中缺少一个类,并且该类不是 JAR ,在这种情况下可以做什么?

java - KeyEventDispatcher 触发后如何释放 KeyEvents 事件?

meteor - 如何使用 Velocity + Jasmine 测试自定义 Meteor 方法

amazon-web-services - 如何在 AWS Api Gateway 映射模板(Velocity、VTL)中创建当前的 ISO8601 时间戳?

spring - 找不到org.springframework.boot :spring-boot-starter-velocity

java - 列出java中的文件夹和子文件夹

java - 如何比较数组列表中的每个元素以找到两个数组中第 n 个最小的元素?

java - 作业的运行资格与 JobLauncherTestUtils 不起作用

testing - 使用 Meteor 进行身份验证测试

java - 使用速度模板和 JSON 生成 HTML?