Bir bayt dizisini bir Freemarker şablonunda base64'e dönüştürmenin bir yolu var mı? Gibi bir şey:Freemarker şablonunda base64 kodlaması
Teşekkürler.
Bir bayt dizisini bir Freemarker şablonunda base64'e dönüştürmenin bir yolu var mı? Gibi bir şey:Freemarker şablonunda base64 kodlaması
Teşekkürler.
Geçerli sürümde yerleşik bir yol yoktur. (Ancak, bunu yapmak için kendi yönteminizi de kullanabilirsiniz.)
Yöntemlerini aramak istediğiniz nesne veri modeline (yani şablon bağlamına) konmalıdır. (Statik İçin: freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55)
Ama kolay bakım için, bu tercih: (Zaten böyle bir şey yoksa) (dahili Base64.encodeBase64
çağırır) sınıfı com.foo.Base64EncoderMethod implements TemplateMethodModelEx
oluşturmak, sonra da o bir şablon lib/utils.ftl
oluşturmak <#assign base64Encode = 'com.foo.Base64EncoderMethod'?new()>
'u arayın. Daha sonra şablonlarda, <#import '/lib/utils.ftl' as u>
ve ${u.base64Encode(photo.data)}
'u nasıl arayın? Uygulamamda base64 kodlamasını yapmak için commons-codec kullanıyorum. Fonksiyon şu şekildedir: 'Base64.encodeBase64 (byte [])' – Michael
Yöntemlerini aramak istediğiniz nesne veri modeline (= şablon bağlamına) konmalıdır. (Statikler için: http://freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55) Ancak, daha kolay bakım için şunu tercih ederim: 'class com.foo yaratın.Base64EncoderMethod, TemplateMethodModelEx' öğesini (' Base64.encodeBase64 'öğesini dahili olarak çağıran) oluşturur), sonra 'lib/utils.ftl' bir şablon yaratın (eğer böyle bir şeye sahip değilseniz), <'assign base64Encode = 'com.foo.Base64EncoderMethod'? new()>', sonra '<#import' /lib/utils.ftl 'şablonları u> 've' $ {base64Encode (photo.data)} 'olarak adlandırılır. – ddekany
Yani, $ {u.base64Encode (photo.data)} '('u.' özledim). – ddekany