我有以下代码,我将 Java 方法的结果分配给 freemarker 变量。
<#assign singleBenchmark = solverBenchmark.findSingleBenchmark(problemBenchmark)>
问题是该 Java 方法的返回值可能null
。即使我检查该变量是否不是null
:
<#if !singleBenchmark??>
<td></td>
<#else>
<td>${singleBenchmark.score}</td>
</#if>
<#assign ...>
如果该 Java 方法返回,它仍然在线崩溃,但null
有以下例外:
freemarker.core.InvalidReferenceException: Error on line 109, column 45 in index.html.ftl
solverBenchmark.findSingleBenchmark(problemBenchmark) is undefined.
It cannot be assigned to singleBenchmark
at freemarker.core.Assignment.accept(Assignment.java:111)
如何避免此异常,而不必findSingleBenchmark
在我的 ftl 中多次调用该方法?