2012-11-25 5 views

답변

2

현재 릴리스에는 기본 제공 방법이 없습니다. (물론 자신의 메서드를 호출하여 호출 할 수 있습니다.)

메서드를 호출하려는 개체는 데이터 모델 (즉, 템플릿 컨텍스트)에 넣어야합니다. (정적의 경우 : freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55)

하지만, 쉽게 유지 보수를 위해, 나는이 선호 : (이미 그런 일이없는 경우) (내부적으로 Base64.encodeBase64를 호출) 클래스 com.foo.Base64EncoderMethod implements TemplateMethodModelEx를 작성을 한 후 그에서 템플릿 lib/utils.ftl를 만들 전화 <#assign base64Encode = 'com.foo.Base64EncoderMethod'?new()>으로 전화하십시오. 그런 다음 템플릿에서 <#import '/lib/utils.ftl' as u>${u.base64Encode(photo.data)}

+1

으로 전화하십시오. 어떻게 하시겠습니까? 내 응용 프로그램에서 commons-codec을 사용하여 base64 인코딩을 수행합니다. 함수는 다음과 같습니다 :'Base64.encodeBase64 (byte []) ' – Michael

+1

메소드를 호출하려는 객체는 데이터 모델 (= 템플릿 컨텍스트)에 넣어야합니다. (정적의 경우 : http://freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55)하지만, 더 쉬운 유지 관리를 위해 필자는'class com.foo.Base64EncoderMethod가 구현 된 TemplateMethodModelEx' ('Base64.encodeBase64'를 내부적으로 호출하는 것)를 선호합니다.), 그런 다음'<#assign base64Encode = 'com.foo.Base64EncoderMethod'? new()>'에서 템플릿'lib/utils.ftl' (만약 당신이 이미 그런 것을 가지고 있지 않다면)을 만든다. '<#import '/lib/utils.ftl'>와'$ {base64Encode (photo.data)} '템플릿을 사용합니다. – ddekany

+0

나는'$ {u.base64Encode (photo.data)}'(''u ')를 놓쳤다. – ddekany