Freemarker模板中的JSP标记

3ur*_*och 6 java jsp freemarker

我想在freemarker模板中使用一些自定义标签,这很容易,因为我可以在我的web.xml文件中包含JspSupportServlet并在模板中包含以下行.

<#assign my=JspTaglibs["/WEB-INF/mytaglib.tld"] />
Run Code Online (Sandbox Code Playgroud)

但是,如果.tld捆绑在META-INF目录中的JAR文件中,我该怎么做呢?我试过这两个都没有运气.

<#assign my=JspTaglibs["/META-INF/mytaglib.tld"] />
<#assign my=JspTaglibs["/mynamespace"] />
Run Code Online (Sandbox Code Playgroud)

Cha*_*tay 3

FreeMarker 会自动扫描 WEB-INF/lib 目录中的所有 JAR 文件。如果它在 JAR 的 META-INF 目录中找到 .tld 文件,例如 META-INF/mytaglib.tld,它会在其中查看以查找标签 <uri>。如果找到,它将通过此​​ URI 使 taglib 可用,例如定义如下的 taglib

<taglib>
  <shortname>my custom taglib</shortname>
  <uri>http://example.org/mytaglib</uri>
  <!-- ... -->
</taglib>
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式在 FreeMarker 中使用

<#assign my=JspTaglibs["http://example.org/mytaglib"] />
Run Code Online (Sandbox Code Playgroud)

至少这对我有用......