Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSP tags in a Freemarker template

I want to use some custom tags in a freemarker template which is easy enough as I can include the JspSupportServlet in my web.xml file and include the folowing line in the template.

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

However how do I go about doing this if the .tld is bundled in a JAR file inside the META-INF directory? I tried both of these with no luck.

<#assign my=JspTaglibs["/META-INF/mytaglib.tld"] />
<#assign my=JspTaglibs["/mynamespace"] />
like image 238
3urdoch Avatar asked Aug 12 '11 16:08

3urdoch


1 Answers

FreeMarker automatically scans all JAR files in your WEB-INF/lib directory. If it finds .tld files inside a JAR's META-INF directory, like your META-INF/mytaglib.tld, it will peek inside it in order to find the <uri> tag. If it finds one, it will make the taglib available via this URI, e.g a taglib defined like

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

can be used in FreeMarker via

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

At least this worked for me...

like image 169
Chaquotay Avatar answered Oct 21 '22 14:10

Chaquotay