2011-08-12 18 views
6

Bazı özel etiketleri bir freemarker şablonunda kullanmak istiyorum. Bu, JspSupportServlet'i web.xml dosyasına ekleyebildiğim ve şablonda bulunan foltolama satırını içerdiğinden yeterince kolay.Bir Freemarker şablonunda JSP etiketleri

<#assign my=JspTaglibs["/WEB-INF/mytaglib.tld"] /> 

Ancak nasıl .tld META-INF dizinine içinde bir JAR dosyası gruplanmışsa bunu gidiyorsun? Her ikisini de şanssız olarak denedim.

<#assign my=JspTaglibs["/META-INF/mytaglib.tld"] /> 
<#assign my=JspTaglibs["/mynamespace"] /> 

cevap

3

FreeMarker, WEB-INF/lib dizininizdeki tüm JAR dosyalarını otomatik olarak tarar. METAR-INF/mytaglib.tld gibi bir JAR'ın META-INF dizininin içinde .tld dosyalarını bulursa, <uri> etiketini bulmak için içine göz atar. Bir bulursa, o En azından bu benim için çalıştı

<#assign my=JspTaglibs["http://example.org/mytaglib"] /> 

...

üzerinden bu URI yoluyla ulaşılabilir taglib, örneğin

<taglib> 
    <shortname>my custom taglib</shortname> 
    <uri>http://example.org/mytaglib</uri> 
    <!-- ... --> 
</taglib> 

FreeMarker kullanılabilir gibi tanımlanmış bir taglib yapacak

+1

Teşekkürler, işe yaradı. URI'yi kullanmayı denedim, ancak http: // ana bilgisayar adını içermiyordu ve freemarker sadece tam URL'leri ad alanları olarak algılıyor gibi görünüyor. Bu yüzden isim alanını http: // hostname/mynamespace olarak değiştirdim ve mükemmel çalışıyor. – 3urdoch

+0

Köşeli ayraçlı modda çalışır mı? –