在Freemarker模板中编码base64

Mic*_*ael 5 java base64 freemarker

有没有办法在Freemarker模板中将字节数组转换为base64?就像是:

<img src="data:image/jpeg;base64,${photo.data?base64}" />
Run Code Online (Sandbox Code Playgroud)

谢谢.

dde*_*any 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)}