背景
在我的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">
由于某种原因,我的印象是 SimpleScalar
是一种数字。经过一番谷歌搜索后,我发现事实并非如此。
问题
为什么是"StoreCredit"
被认为是freemarker.template.SimpleScalar
?
这就是 FTL 表示字符串的方式吗?
是SimpleScalar
曾经用来表示字符串以外的东西吗?或者这只是一个通用 token ,也可用于其他用途。
最佳答案
<if payout.paymentType.name??>
<#if payout.paymentType.name?string == "StoreCredit">
</#if>
</#if>
关于java - 关于FTL的SimpleScalar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279197/