Gibt es eine Möglichkeit, eine Byte-Array zu konvertieren in einer Freemarker Vorlage base64? Etwas wie:Encode Base64 in Freemarker Vorlage
<img src="data:image/jpeg;base64,${photo.data?base64}" />
Danke.
Gibt es eine Möglichkeit, eine Byte-Array zu konvertieren in einer Freemarker Vorlage base64? Etwas wie:Encode Base64 in Freemarker Vorlage
<img src="data:image/jpeg;base64,${photo.data?base64}" />
Danke.
In der aktuellen Version gibt es keine integrierte Möglichkeit. (Aber Sie können natürlich Ihre eigene Methode dazu aufrufen.)
Das Objekt, dessen Methoden Sie aufrufen möchten, muss in das Datenmodell (d. H. Den Vorlagenkontext) eingefügt werden. (Für Statik: freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55)
Aber für eine einfachere Wartung, ziehe ich diese: create Klasse com.foo.Base64EncoderMethod implements TemplateMethodModelEx
(die Base64.encodeBase64
ruft intern), erstellen Sie dann eine Vorlage lib/utils.ftl
(wenn Sie nicht bereits so etwas haben Sie), und dass , rufen Sie <#assign base64Encode = 'com.foo.Base64EncoderMethod'?new()>
. Dann rufen Sie in den Vorlagen <#import '/lib/utils.ftl' as u>
und ${u.base64Encode(photo.data)}
Wie machen Sie das? Ich verwende Commons-Codec, um Base64-Codierung in meiner Anwendung zu tun. Die Funktion ist: 'Base64.encodeBase64 (byte [])' – Michael
Das Objekt, dessen Methoden wollen Sie in das Datenmodell (= Template-Kontext) setzen nennen werden müssen. (Für Statik: http://freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55) Aber, um die Wartung zu erleichtern, bevorzuge ich dies: create 'class com.foo.Base64EncoderMethod implementiert TemplateMethodModelEx' (das' Base64.encodeBase64' intern aufruft), dann eine Vorlage 'lib/utils.ftl' erstellen (wenn Sie so ähnlich) haben nicht bereits, dass' <#assign Base64Encode = 'com.foo.Base64EncoderMethod'? new()> ', dann in die Vorlagen '<#import '/lib/utils.ftl' als u>' und '$ {base64Encode (photo.data)}'. – ddekany
Ich meinte, $ {u.base64Encode (photo.data)} '(verpasste die' u.'). – ddekany