2012-04-09 52 views
1

当我们用下面的编译器指令,我不web.xml中JSP taglib如何找到.tld?

<%@ taglib uri="/struts-tags" prefix="s"%> 

什么都会做的Tomcat与使用? taglib如何找到.tld? 它有搜索顺序吗?我想知道这个原则。 THX〜

回答

5

下面是它的工作方式:包含标记库有.TLD文件,这反过来又一个<uri>标签与需要匹配你的JSP值的字符串

的JAR文件。

例如,标准JSTL JAR与此URI一个c.tld文件:

<uri>http://java.sun.com/jsp/jstl/core</uri> 

这就是你需要使用核心JSTL标记库的URI。

它无关,你把罐子里,一切都做的.TLD。

+0

我不太明白,你可以说的更详细。我知道它使用标签以匹配我的JSP的价值,但如何才能找到它具有.TLD的JAR文件? – koppt 2012-04-09 15:16:55

+0

我不同意 - 你不“知道”它使用标签值,因为你发布的是错的。请参阅文档:http://struts.apache.org/1.x/userGuide/configuration.html。至于如何,JAR在你的CLASSPATH中 - 你的应用服务器的/ lib目录或WAR的WEB-INF/lib。 – duffymo 2012-04-09 15:20:54

+0

我能想到:在JAR的.TLD有,和<%@ taglib伪...>将匹配其与.TLD的,如果相同则取得标签?所以编译器会在我的CLASSPATH中搜索JAR并找到正确的.tld? – koppt 2012-04-09 15:42:28

0

容器搜索Web应用程序的所有.TLD,首先在WEB-INF目录下,接下来的WEB-INF中的所有子目录,如果有一个jar文件,他里面搜索,如果有一个TLD文件。 之后,容器映射每个uri与tld文件一起发现。