私は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