2014-10-29 170 views
2
之间

我已经创建了两个项目的webutils“和“网站”共享customTags.tld项目

在网站我已创建自定义标签库和customTags.tld文件中引用标记。

在我的JSP的我用这

<%@ taglib uri="/WEB-INF/tags/customTags.tld" prefix="tt"%> 

它工作正常。我可以使用

<tt:mytag/> 

现在的问题是我想将我的标记库移到webutils项目。只移动Java包的java包可以工作,但我想将customTags.tld文件移动到webutils。当我这样做不起作用。我无法引用.tld文件。

让我知道是否需要更多的问题澄清,因为我承担了很多事情。

我正在使用gradle & spring-boot。

忘了提及一些东西,'网站'取决于'webutils'。我正在使用gradle。

回答

2

如果你想重新分配您的标记文件或实现自定义 标签用Java编写的标记处理程序,您必须在 标签库描述符(TLD)声明标签。标签库描述符是一个XML文档,其中包含有关整个库的信息,以及关于库中包含的每个标签的信息。 Web 容器使用TLD来验证标记,并通过JSP页面开发工具进行验证。

标签库描述符文件名必须有扩展名.TLD和 必须在WAR文件 的/ WEB-INF /目录或子目录或在标签的/ META-INF /目录或子目录打包包装在JAR中的库 。如果标签是作为标签文件实现的,并且打包在/ WEB-INF/tags /或子目录中,则由Web容器自动生成 ,但如果您希望 希望,则可以提供一个TLD。

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags6.html

所以,如果使用Maven,例如,将.TLD下​​

的src /主/资源/ META-INF

+0

我如何请参阅本.TLD在我JSP? – LNT 2014-10-29 18:08:13

+0

您可以在您的tld中指定一个uri,然后像引用其他taglib一样引用它。见前面的链接。 – 2014-10-30 09:23:17

+0

它工作,如果tld是在同一个项目,但不是如果它是在另一个项目,说它正在工作,如果我在'网站',但不是当我把它放在'webutils'。我想从jsp的网站项目中引用.tld。 – LNT 2014-10-30 09:37:07