JSP中的TAG檔案和TLD檔案

hugh Lee發表於2017-07-24

在jsp檔案中,可以引用tag和tld檔案。

1.對於tag檔案

<%@ taglib prefix="ui" tagdir="/WEB-INF/tags" %> 

其中的tags是個目錄,裡面有若干tag檔案。
但使用<ui:XXXX>時,目錄WEB-INF/tags下,必然有個XXXX.tag檔案與之對應。
tag檔案只是以tag為字尾名的文字檔案。除了jsp頁面指令外,其他JSP元素都可以出現在tag檔案中

2.對於tld檔案

在jsp中可以引用TLD檔案,如
<%@ taglib uri=”http://struts.apache.org/tags-html” prefix=”html”%>
但是這個http://struts.apache.org/tags-html對應著什麼呢?
jsp會在當前目錄的\WEB-INF下找所有tld檔案,確認這個URL對應哪個TLD檔案。
當找到struts-html.tld檔案時,發現其中的內與這個URL對應。
但使用時,這個TLD檔案中必然有個YYYY項與之對應。

還有一種更保險的方法是,在WEB-INF/web.xml中加上

<taglib> 
    <taglib-uri> 
http://jakarta.apache.org/tomcat/examples-taglib 
    </taglib-uri> 
    <taglib-location> 
       /WEB-INF/jsp/example-taglib.tld 
    </taglib-location> 
</taglib> 

這樣表示http://jakarta.apache.org/tomcat/examples-taglib對應著/WEB-INF/jsp/example-taglib.tld

tag檔案作用一般是一段小程式碼,類似include檔案的作用。
tld檔案作用比較複雜,可以實現很多高階的作用。

相關文章