速度模板是否适合评估条件?

时间:2012-10-15 22:27:51

标签: java map velocity

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

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

我正在考虑使用spring的表达式语言,但由于我们已经在使用速度模板,我想也许它是一个很好的候选者。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

  • 功能:Velocity不是一种完整的编程语言 设计,所以你迟早会错过一些东西和一个宏 根本不是一个功能,例如默认情况下,变量具有全局 范围,...如果你做的话,你必然遇到其中的一些 你的模板大而复杂。