Freemarkerテンプレートでバイト配列をbase64に変換する方法はありますか?次のようなもの:FreemarkerテンプレートのBase64をエンコードする
<img src="data:image/jpeg;base64,${photo.data?base64}" />
ありがとうございます。
Freemarkerテンプレートでバイト配列をbase64に変換する方法はありますか?次のようなもの:FreemarkerテンプレートのBase64をエンコードする
<img src="data:image/jpeg;base64,${photo.data?base64}" />
ありがとうございます。
現在のリリースでは、組み込みの方法はありません。 (ただし、独自の方法で呼び出すこともできます)
メソッドを呼び出すオブジェクトは、データモデル(テンプレートコンテキスト)に配置する必要があります。 (静の場合: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)}
を呼び出してください。
どうすればよいですか?私はコモンズコーデックを使用してアプリケーションでbase64エンコーディングを行います。関数は次のとおりです。 'Base64.encodeBase64(byte [])' – Michael
メソッドを呼び出すオブジェクトは、データモデル(=テンプレートコンテキスト)に入れる必要があります。 (静的な場合は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
私は '$ {u.base64Encode(photo.data)}'( 'u.'が見つかりません)を意味していました。 – ddekany