5

Freemarkerテンプレートでバイト配列をbase64に変換する方法はありますか?何かのようなもの:

<img src="data:image/jpeg;base64,${photo.data?base64}" />

ありがとう。

4

1 に答える 1

3

現在のリリースには組み込みの方法はありません。(もちろん、独自のメソッドを呼び出してそれを行うこともできます。)

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

しかし、メンテナンスを簡単にするために、私はこれを好みます: クラスを作成しcom.foo.Base64EncoderMethod implements TemplateMethodModelEx(内部的に呼び出すBase64.encodeBase64)、次にテンプレートを作成しlib/utils.ftl(そのようなものがまだない場合)、その中で を呼び出します<#assign base64Encode = 'com.foo.Base64EncoderMethod'?new()>。次に、テンプレートで、呼び出し<#import '/lib/utils.ftl' as u>${u.base64Encode(photo.data)}

于 2012-11-25T07:54:42.747 に答える