2011-08-12 15 views
6

私はweb.xmlファイルにJspSupportServletを含めることができ、テンプレートに次の行を含めることができるので、freemarkerテンプレートでいくつかのカスタムタグを使用したいと思います。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ファイルを自動的にスキャンします。 META-INF/mytaglib.tldのように、JARのMETA-INFディレクトリ内に.tldファイルがある場合は、<uri>というタグを見つけるために、その内部を覗いてみます。それが1つを見つけた場合、それは

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

のように定義されたなどのtaglibが、少なくともこれは私のために働いた

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

...

経由FreeMarkerのに使用することができ、このURIを経由してタグライブラリを利用できるようになります
+1

ありがとうございました。私はすでにURIを使用しようとしましたが、http://ホスト名は含まれておらず、freemarkerは完全なhttp URLを名前空間として認識しているようです。だから、私は名前空間をhttp:// hostname/mynamespaceに変更しました。これは完全に動作します。 – 3urdoch

+0

大括弧で動作しますか? –

関連する問題