【问题标题】:JSP tags in a Freemarker templateFreemarker 模板中的 JSP 标签
【发布时间】:2011-10-25 23:18:02
【问题描述】:

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

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

但是,如果 .tld 捆绑在 META-INF 目录内的 JAR 文件中,我该怎么做呢?我尝试了这两种方法都没有运气。

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

【问题讨论】:

    标签: java jsp freemarker


    【解决方案1】:

    FreeMarker 会自动扫描您的 WEB-INF/lib 目录中的所有 JAR 文件。如果它在 JAR 的 META-INF 目录中找到 .tld 文件,例如您的 META-INF/mytaglib.tld,它将在其中窥视以找到 &lt;uri&gt; 标记。如果找到,它将通过此​​ URI 使 taglib 可用,例如定义为

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

    可以通过

    在 FreeMarker 中使用
    <#assign my=JspTaglibs["http://example.org/mytaglib"] />
    

    至少这对我有用...

    【讨论】:

    • 谢谢,成功了。我已经尝试过使用 URI,但是它不包含 hostname,而且似乎 freemarker 只将完整的 http url 识别为命名空间。所以我把命名空间改成了hostname/mynamespace,而且效果很好。
    猜你喜欢
    • 2018-09-21
    • 1970-01-01
    • 2013-04-11
    • 2015-05-17
    • 2013-06-12
    • 2016-04-21
    • 2011-06-02
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多