Теги JSP в шаблоне Freemarker

Я хочу использовать некоторые пользовательские теги в шаблоне freemarker, который достаточно прост, поскольку я могу включить JspSupportServlet в свой веб.xml-файл и включить в шаблон следующую строку.

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

однако, как я могу это сделать, если .tld поставляется в JAR-файле внутри каталога META-INF? Я попробовал оба безрезультатно.

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

1 ответов


FreeMarker автоматически сканирует все файлы JAR в каталоге WEB-INF/lib. Если найдет .файлы tld внутри каталога META-INF JAR, например, ваш META-INF/mytaglib.tld, он будет заглядывать внутрь него, чтобы найти <uri> тег. Если он найдет его, он сделает taglib доступным через этот URI, e.g taglib определяется как

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

может использоваться в FreeMarker через

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

по крайней мере это работало для меня...