2012-11-25 11 views

答えて

2

現在のリリースでは、組み込みの方法はありません。 (ただし、独自の方法で呼び出すこともできます)

メソッドを呼び出すオブジェクトは、データモデル(テンプレートコンテキスト)に配置する必要があります。 (静の場合:freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55

しかし、より容易なメンテナンスのために、私はこれを好む:(あなたはすでにそのような何かを持っていない場合)(内部Base64.encodeBase64を呼び出す)クラスcom.foo.Base64EncoderMethod implements TemplateMethodModelExを作成し、その後、その中にテンプレートlib/utils.ftlを作成、<#assign base64Encode = 'com.foo.Base64EncoderMethod'?new()>に電話してください。次に、テンプレートで<#import '/lib/utils.ftl' as u>${u.base64Encode(photo.data)}を呼び出してください。

+1

どうすればよいですか?私はコモンズコーデックを使用してアプリケーションでbase64エンコーディングを行います。関数は次のとおりです。 'Base64.encodeBase64(byte [])' – Michael

+1

メソッドを呼び出すオブジェクトは、データモデル(=テンプレートコンテキスト)に入れる必要があります。 (静的な場合はhttp://freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55)しかし、簡単な保守のために、私は 'class com.foo.Base64EncoderMethodが実装されたTemplateMethodModelEx'を作成することが望ましいです(' Base64.encodeBase64'を内部的に呼び出します) )、 '' <#assign base64Encode = 'com.foo.Base64EncoderMethod'?new()> 'というテンプレートで' lib/utils.ftl'というテンプレートを作成してください。 '<#import '/lib/utils.ftl'と' $ {base64Encode(photo.data)} 'のテンプレートがあります。 – ddekany

+0

私は '$ {u.base64Encode(photo.data)}'( 'u.'が見つかりません)を意味していました。 – ddekany

関連する問題