java - 关于FTL的SimpleScalar

标签 java freemarker

背景

在我的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/

相关文章:

具有 RSA 签名的 Java 存储过程 SHA256 不可用

java - 在哪里编写安装矩阵工具包的代码?

java - 如何基于一个 Freemarker 模板创建多个文件

java - 将 Freemarker 与 ckEditor(或任何 html 编辑器)一起使用时如何解决引号问题?

Java 字符串基础

java - 数据类型原始对象未正确初始化 boolean 值

java.lang.NoClassDefFoundError : org/apache/cxf/service/invoker/Invoker

java - 如何使用 freemarker 模板获取 url?

java - Freemarker 模板错误

java - 如何在FTL(Freemarker)中创建 map 列表