2012-04-09 81 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文件一起發現。