Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Freemarker模板中的JSP标记_Java_Jsp_Freemarker - Fatal编程技术网

Java Freemarker模板中的JSP标记

Java Freemarker模板中的JSP标记,java,jsp,freemarker,Java,Jsp,Freemarker,我想在freemarker模板中使用一些自定义标记,这非常简单,因为我可以在web.xml文件中包含JspSupportServlet,并在模板中包含以下行 <#assign my=JspTaglibs["/WEB-INF/mytaglib.tld"] /> 但是,如果.tld被捆绑在META-INF目录中的JAR文件中,我该怎么做呢?这两种我都试过了,但都不走运 <#assign my=JspTaglibs["/META-INF/mytaglib.tld"] />

我想在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"] />

FreeMarker会自动扫描WEB-INF/lib目录中的所有JAR文件。如果它在JAR的META-INF目录中找到.tld文件,如META-INF/mytaglib.tld,它将在其中窥视以找到
标记。如果找到一个,它将通过这个URI使标记库可用,例如定义为

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

我的自定义标记库
http://example.org/mytaglib
可用于FreeMarker via

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


至少这对我有用…

谢谢,这很有用。我已经尝试过使用URI,但是它没有包括,而且freemarker似乎只将完整的http URL识别为名称空间。因此,我将名称空间更改为,它可以完美地工作。