背景
在我的ftl文件中,我有以下<#if>声明
<#if payout.paymentType.name == "StoreCredit">
好吧,事实证明该语句会生成以下错误
Caused by: The only legal comparisons are between two numbers, two strings, or two dates.
Left hand operand is a freemarker.ext.beans.SimpleMethodModel
Right hand operand is a freemarker.template.SimpleScalar
我花了一段时间才发现这是导致 <#if>问题的原因,我像这样修复了它。
<#if payout.paymentType.name() == "StoreCredit">
出于某种原因,我的印象是 aSimpleScalar是一种数字。谷歌搜索了一段时间后,我发现事实并非如此。
问题
为什么被"StoreCredit"认为是freemarker.template.SimpleScalar?
这就是 FTL 表示字符串的方式吗?
SimpleScalar曾经用来表示字符串以外的东西吗?或者这只是一个用于其他用途的通用令牌。