2011-08-12 39 views
6

我想在freemarker模板中使用一些自定義標籤,這很容易,因爲我可以在我的web.xml文件中包含JspSupportServlet,並在模板中包含以下行。Freemarker模板中的JSP標籤

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

但是我怎麼去,如果.TLD在META-INF目錄中的JAR文件捆綁這樣做呢?我試過這兩個都沒有運氣。

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

回答

3

FreeMarker會自動掃描WEB-INF/lib目錄中的所有JAR文件。如果它在JAR的META-INF目錄中找到.tld文件,比如你的META-INF/mytaglib.tld,它會在裏面查看它以便找到<uri>標籤。如果找到一個,它會通過

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

至少這爲我工作...

使通過該URI提供的標籤庫,比如像

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

可以在FreeMarker的使用定義標籤庫

+1

謝謝,這工作。我已經嘗試過使用URI,但它沒有包含http://主機名,似乎freemarker只能識別完整的http url作爲命名空間。所以我已經將命名空間更改爲http:// hostname/mynamespace,並且它完美地工作。 – 3urdoch

+0

它是否適用於方括號模式? –