我有一个有效的json。我想将其分配给要在页面中使用的变量。但是FTL抛出的错误表明“字符串被评估为空或丢失”。
我能够顺利地在2.1.X版本中进行相同的操作。
我可能做错了什么?
答案 0 :(得分:0)
如果我理解得很好,您尝试从FreeMarker 2.1.x迁移到2.3.x,即使您还没有意识到这需要一些额外的迁移工作。考虑早期的2.x.x FreeMarker版本,即2.3.0之前(2004年发布,11年前发布)的版本,在向后兼容性方面仍然沸腾且脆弱。 (从下载页面上的版本历史和版本策略声明中也可以看出这一点。)
主要的迁移问题曾经是FreeMarker随着时间的推移变得更加严格,因为它涉及到空值和缺少变量。虽然这个改变已经完成了2.1.0,但是该部门的一些粗略的边缘可能会在之后得到完善......(或者,你是从2.01迁移出来的吗?那意味着是2.0.1,但是在黑暗的时代回归作者设法搞砸了......)
另请注意,配置设置为classic_compatible
。它主要用于帮助从1.x迁移到更严格的更高版本。所以基本上它让FreeMarker变得更加宽松。也许它早些时候被打开了,现在某种程度上被关闭了?
答案 1 :(得分:0)
问题是归零为空值。在2.3.x中,我们不能将null用作json属性的值。相反,我不得不用空字符串替换它。此外,不再允许将数值与字符串进行比较。
解决了这些问题,它就像一个魅力。