2016-04-01 15 views
0

短い質問: それはこのように私のFTLから直接TemplateDirectiveModelを実装FreeMarkerのディレクティブFormatDirective.javaを呼び出すことは可能です:ftlテンプレートからFreeMarkerディレクティブを直接呼び出す方法は?

<#assign formattedPhoneNumber = "com.myapp.utils.FormatDirective"?new(phoneNumber)> 


詳細な質問: それは春のMVCのWebアプリですFreeMarkerで書かれたビューを持っていて、Javaの設定はまったくなく、FreeMarkerConfigurerFreeMarkerViewResolverのBeanしか正しく定義されておらず、 root-context.xmlに設定されています。

私はJavaの設定(モデルや共有変数にテンプレートを追加するなど)を避けたいと考えています。 Javaディレクティブを正常に動作させるには、適切な方法は何ですか?私は完全なチュートリアルや例を見つけるように見えません。

おかげ

答えて

0

あなたはmy-commons.ftlような何かにあなたの頻繁に使用されるディレクティブや機能を集めることができます:

<#assign format = "com.myapp.utils.FormatDirective"?new()> 
... 

、あなたのテンプレートで:返信用

<#import "my-commons.ftl" as my> 
... 
<@my.format value=phoneNumber /> 
+0

感謝を! Viewモデルにディレクティブインスタンスを追加する必要がありますか?それともxml configsから共有変数として定義する必要がありますか?または、他の設定なしで説明した方法で動作するはずですか? – Cortex

+0

インポートされたテンプレート自体がインスタンス化するクラスを指しているため、設定なしで動作するはずです。 – ddekany

+0

お試しいただきありがとうございます! – Cortex

関連する問題