我有一个Java函数,比如method1(),它在某些条件下引发异常,说条件A.我从条件为A的FTL文件中调用该函数。现在我在FTL中发现模板错误,说上面的函数抛出了一个异常。就像我们用try-catch处理Java中的异常一样,我想在我的FTL中使用类似的东西。如何在Freemarker中处理Java中抛出的异常?
这与我的FTL代码类似。
<#-- @ftlvariable name="someUtilClass" type="com.some.package.SomeUtilClass" -->
<#attempt>
<#assign x = someUtilClass.method1() />
<#recover>
<#assign x = '' />
</#recover>
我正在使用Freemarker 2.3.20。
谢谢。
这可能是相关的:http://stackoverflow.com/questions/15123743/what-are-different-ways-to-handle-error-in-freemarker-template – Berger
@Berger其实我不想处理它在Java端,并且尝试恢复不起作用。 – sam100rav
我可能是错的,但AFAIK不能直接在Freemarker模板中使用Java代码。你需要使用TemplateMethod使它作为一个方法变量等。所以,如果你还没有这样做,这可能是_attemp-recover不工作的原因。你确定你的FTL代码与此类似吗? – walen