Templates Freemarker中的开关大小写:TemplateException
这是我的Templates Freemarker中的开关大小写:TemplateException,templates,exception,freemarker,Templates,Exception,Freemarker,这是我的testMacro.txt <#macro myMacro value1 value2> <#list 1..value1 as x> <#if x=value1> <#switch value2> <#case value2 = 1> CASE1 <#break> <#case value2
testMacro.txt
<#macro myMacro value1 value2>
<#list 1..value1 as x>
<#if x=value1>
<#switch value2>
<#case value2 = 1>
CASE1
<#break>
<#case value2 =2 >
CASE2
<#break>
<#case value2 = 3>
CASE3
<#break>
</#switch>
<#else>
ELSE
</#if>
</#list>
案例1
案例2
案例3
其他的
这是我得到的一个例外
线程“main”java.lang.RuntimeException中的异常:freemarker.template.TemplateException:唯一合法的比较是两个数字、两个字符串或两个日期之间的比较。
左侧操作数是freemarker.template.SimpleNumber
右侧操作数是freemarker.template.TemplateBooleanModel$2
这是在switch-case语句中,虽然在异常中没有给出行号,但我对switch语句进行了注释,没有异常,因此我得出结论,case语句存在一些问题
请帮忙。因为如果我做了以下事情
<#case 1>
CASE1
<#break>
<#case 2 >
CASE2
<#break>
<#case 3>
CASE3
<#break>
案例1
案例2
案例3
那么它似乎确实起作用了。虽然我不明白为什么它不能与表达式一起工作,因为我从中看到了这一点,如果我执行以下操作
<#case 1>
CASE1
<#break>
<#case 2 >
CASE2
<#break>
<#case 3>
CASE3
<#break>
案例1
案例2
案例3
那么它似乎确实起作用了。虽然我不明白为什么它不能与表达式一起工作,因为我从中看到,出于历史原因,=
是=
的别名,但在需要分配任务的地方除外。因此'
是'
,因此它最终是'
或'
,因此出现错误消息。因此,正如您所想,它应该是”
之类的,就像在C-ish语言中一样。从本手册的最后一个示例来看,该示例是错误的…出于历史原因=
是=
的别名,预期分配的地方除外。因此'
是'
,因此它最终是'
或'
,因此出现错误消息。因此,正如您所想,它应该是”
之类的,就像在C-ish语言中一样。对于手册中的最后一个示例,该示例是错误的…value、refValue1等:表达式计算为相同类型的标量。从manual.value、refValue1等:表达式计算为相同类型的标量。从手册上看。花了我一整天的时间,我觉得我很幸运。:)干杯。花了我一整天的时间,我觉得我很幸运干杯