【发布时间】:2014-06-19 06:50:51
【问题描述】:
情况:
- 使用 freemarker 的旧 java 项目有许多成品模板运行良好。
- 每个模板都使用数据表单事务对象。
- 这个交易对象非常大,因为它包含了所有关于交易的数据。
- 在模板中有很多这样的表达式: get("object1").getNestedObject2().getNestedObject3().getValue();
问题: 新要求出现:所有模板都必须经过处理才能进行预览,没有真实数据。所有数字都应该为零,所有字符串都应该是---。
不满意的解决方案:
- 重新制作所有模板以检查空值。 (工作量大,不安全)
- 创建包含所有默认值的事务对象。 (大量工作)
我的问题是:我可以对 Freemarker 说,如果他发现 null 或一路上发现 null,如果他期待数字或 --- 如果他期待 String,他应该使用 0 代替。
或者你能找到更好的解决方案吗?
【问题讨论】:
-
您使用的是哪个版本的 Freemarker 和 Java?另外,您是否使用任何其他框架来帮助您将这些技术联系起来?
-
我正在使用 freeMarker 2.3.20 和 java 1.7。不,我不使用任何其他框架。
-
你能把你的交易对象转换成平面图来简化一切吗?
-
我没有看到任何简单的方法来做到这一点。看起来工作量很大。
标签: java null freemarker