java - 速度模板适合评估条件吗?

标签 java dictionary velocity

我正在考虑外部化一些条件,而不是在 java 中实现它们,以便我以后可以根据需要轻松更改它们。

例如,我需要检查给定映射中是否存在某些键以及映射中某些键的值是否等于某个值。

我正在考虑使用 spring 的表达式语言,但由于我们已经在使用速度模板,我认为它可能是一个不错的候选者。

有什么想法吗?谢谢。

最佳答案

您可以轻松使用速度的 #if/#else、#foreach 和其他条件功能来执行业务逻辑,作为速度模板渲染的一部分。

但是,出于多种原因,我通常会尝试将业务逻辑与速度渲染分开:

  • 复杂性:Velocity 模板可能会变得难以阅读,尤其是 如果目标输出本身需要复杂的结果布局。如果你 添加额外的业务逻辑到混合中,它很快就会变得
    不可能为其他人阅读(或者在读了一些之后为自己阅读
    几个月没有经常看它)

  • 可测试性:测试 Velocity 模板比较困难,有 更好地支持 Java 代码的单元/集成测试

  • 功能:Velocity 并不是一种完整的编程语言 设计,所以你迟早会错过一些东西和一个宏 根本不是一个函数,例如变量默认是全局的 范围,...如果您执行以下操作,您一定会遇到其中的一些情况 您的模板又大又复杂。

关于java - 速度模板适合评估条件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904931/

相关文章:

liferay - 从 Velocity 模板访问 Liferay 自定义字段

java - 什么时候使用速度?

java - 代码可以在eclipse中运行,但不能在javac中运行

java - Java的LinkedList中getFirst()和peekFirst()有什么区别?

Python字典检查键是否存在

csv - 将列表字典写入 csv

javascript - 将参数从速度传递给 javascript

java - 使用构建器/工厂模式确保内存可见性

java - 为什么尝试在 PHP 和 Android 中使用套接字时连接被拒绝?

python - 如果值为零,则从库存(字典)中删除项目