Java 速度宏与指令

Java 速度宏与指令,java,velocity,Java,Velocity,扩展Velocity语法时的最佳实践。可用的两种机制是指令和宏。两者看起来同样强大。指令需要实际开发Java代码,而宏只是Velocity语法的片段 指令的优点在于,因为它们是用Java编写的,所以不必解析宏中包含的额外Velocity语法。它使Velocity的扩展更加正式,并阻止了大量不受控制的添加 从宏的优点来看,我认为这是非常灵活的,并且允许在应用程序开发过程中发现常见模式时进行大量重用 因此,您在这方面的想法将是非常受欢迎的。实际上还有第三种方法。但是首先 指令用于对模板的某个部分执行

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

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

从宏的优点来看,我认为这是非常灵活的,并且允许在应用程序开发过程中发现常见模式时进行大量重用


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

实际上还有第三种方法。但是首先

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

宏不是为函数而设计的。它们最好用于重复内容或标记。它们是为了防止您在Java代码中输出任何标记语言(或诸如此类的语言),或反复重复VTL的部分

第三种方法称为“工具”。VelocityTools项目中有许多这样的工具,您可以使用它们或将它们用作示例,更不用说用于真正方便的工具管理的支持代码了。无论如何,工具主要用于访问或操作数据。不要创建执行数字格式设置的指令或宏。使用工具。这些工具为在模板中难以使用的库和API提供了VTL友好的界面。它们可以以指令和宏无法实现的方式进行访问控制和范围划分

对于不同的事情,这三种方法都非常有用。简言之:

  • 指令最适合于操作AST或模板节的输出
  • 宏最适合于不重复自己或让标记潜入java代码
  • 工具最适合访问和操作模板中的数据

非常感谢您对选项的精彩总结。我已经仔细研究了Velocity工具,它有很多特性。谢谢