1

扩展 Velocity 语法时被认为是最佳实践。可用的两种机制是指令和宏。两者看起来同样强大。指令需要实际开发 Java 代码,而宏只是 Velocity 语法的片段。

指令的优点是因为它们是用 Java 编写的,所以您不必解析宏中包含的额外 Velocity 语法。它使 Velocity 的扩展更加正式,并阻止了许多不受控制的添加。

宏的优点是,我认为它非常灵活,并且允许大量重用,因为在应用程序开发过程中发现了常见模式。

因此,您在这方面的想法将是最受欢迎的。

4

1 回答 1

2

其实还有第三种方式。但首先...

指令用于对模板的一部分或对模板的一部分执行操作,或者用于需要了解周围模板的操作。例如,您可以创建一个指令,以某种方式转换它所包含的部分的输出。它们以全局、始终在线的方式提供这种功能性、以模板为中心的行为。

宏并非设计为函数。它们最适合用于重复内容或标记。它们的目的是防止您将任何您在 Java 代码中输出的任何标记语言(或诸如此类的东西),或一遍又一遍地重复 VTL 部分。

第三种方式称为“工具”。VelocityTools 项目中有许多您可以使用或用作示例的工具,更不用说用于真正轻松工具管理的支持代码。无论如何,工具主要用于访问或操作您的数据。不要创建进行数字格式化的指令或宏。使用工具。工具为在模板中难以使用的库和 API 提供了 VTL 友好的接口。它们可以以指令和宏永远无法实现的方式进行访问控制和限定。

这三个都非常有用,用于不同的事情。简而言之:

  • 指令最适合操作 AST 或模板部分的输出
  • 宏最适合不要重复自己或让标记潜入 Java 代码
  • 工具最适合访问和操作模板中的数据
于 2012-05-24T16:59:46.733 回答