0
freemarkerテンプレートのオブジェクトのクラス名を取得する方法はありますか?FreeMarkerオブジェクトのクラス名を確認
例えば:
<#if component.javaType.class.name.equals("test") >
"something...."
</#else>
"something else ...."
</#if>
おかげ
freemarkerテンプレートのオブジェクトのクラス名を取得する方法はありますか?FreeMarkerオブジェクトのクラス名を確認
例えば:
<#if component.javaType.class.name.equals("test") >
"something...."
</#else>
"something else ...."
</#if>
おかげ
があり、そのために内蔵全く機能ませんが、構成設定にし、オブジェクトの種類に応じて、これはよい作品:
<#if component.class.name == 'com.example.Something'>
component.foo
はJavaでcomonent.getFoo()
を意味するため、上記はちょうどcomponent.getClass().getName()
を意味します。ただし、String
-s、Number
-s、Map
-s、List
-sなどのJavaBeanのプロパティが公開されていない場合は、component
というJavaBeanのプロパティが公開されていないと動作しません。 " クラス。 component
がそのようなオブジェクトになることができますが、とにかく比較が偽である場合は、(component.class.name)!'unknown' == 'com.example.Something'
と書くことができます。
ありがとう、期待どおりに動作します。 – Giovanni
私は<#if component.class.name?contains("TextComponentModel ")>は便利ですので、完全なクラス名を指定するのは避けてください。 – Giovanni
'?endsWith("。TextComponentModel ")'(または 'ends_with')は'?contains( "TextComponentModel") 'よりも安全です。 – ddekany