我使用freemarker模板,我在下面的ftl文件中给出了代码。
<#if (actionErrors?exists && actionErrors?size > 0)>
<ul>
<#list actionErrors as error>
<li><span<#rt/>
<#if parameters.cssClass?exists>
class="${parameters.cssClass?html}"<#rt/>
</#if>
<#if parameters.cssStyle?exists>
style="${parameters.cssStyle?html}"<#rt/>
</#if>
>${error}</span></li>
</#list>
</ul>
</#if>
上面的代码给出了以下错误。
freemarker.core.InvalidReferenceException:表达式错误是 第33行未定义
我用&lt; #if error.value ??&gt;包装$ {error}并再次尝试。它仍然给出了同样的问题。然后我使用了here中的$ {error.value!&#39; N / A&#39;}。它仍然没有解决问题。请帮帮我。
提前谢谢你。
谢谢。
答案 0 :(得分:3)
如前所述,error
值似乎未设置。当你这样做时:
${error.value!"Default"}
...如果未设置value
的{{1}}属性,则提供默认值。它仍然假定已设置error
,以便它可以从中获取error
属性。如果你这样做:
value
...如果未设置 <{em> ${(error.value)!"Default"}
或error
,默认设置将适用。括号表示“将默认值应用于所附表达式”。如果Freemarker在解析所附表达式时在任何地方遇到缺失值,则它将应用默认值。
这也适用于error.value
运算符:
??