扩展 Velocity 语法时被认为是最佳实践。可用的两种机制是指令和宏。两者看起来同样强大。指令需要实际开发 Java 代码,而宏只是 Velocity 语法的片段。
指令的优点是因为它们是用 Java 编写的,所以您不必解析宏中包含的额外 Velocity 语法。它使 Velocity 的扩展更加正式,并阻止了许多不受控制的添加。
宏的优点是,我认为它非常灵活,并且允许大量重用,因为在应用程序开发过程中发现了常见模式。
因此,您在这方面的想法将是最受欢迎的。
其实还有第三种方式。但首先...
指令用于对模板的一部分或对模板的一部分执行操作,或者用于需要了解周围模板的操作。例如,您可以创建一个指令,以某种方式转换它所包含的部分的输出。它们以全局、始终在线的方式提供这种功能性、以模板为中心的行为。
宏并非设计为函数。它们最适合用于重复内容或标记。它们的目的是防止您将任何您在 Java 代码中输出的任何标记语言(或诸如此类的东西),或一遍又一遍地重复 VTL 部分。
第三种方式称为“工具”。VelocityTools 项目中有许多您可以使用或用作示例的工具,更不用说用于真正轻松工具管理的支持代码。无论如何,工具主要用于访问或操作您的数据。不要创建进行数字格式化的指令或宏。使用工具。工具为在模板中难以使用的库和 API 提供了 VTL 友好的接口。它们可以以指令和宏永远无法实现的方式进行访问控制和限定。
这三个都非常有用,用于不同的事情。简而言之: