2012-11-25 7 views

cevap

2

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)}

+1

'u nasıl arayın? Uygulamamda base64 kodlamasını yapmak için commons-codec kullanıyorum. Fonksiyon şu şekildedir: 'Base64.encodeBase64 (byte [])' – Michael

+1

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

+0

Yani, $ {u.base64Encode (photo.data)} '('u.' özledim). – ddekany