[導入]在jsp中使用標簽的方式,并解答不定義dtd文件的情況下使用標簽庫的方法
今天下午去買了Logitech的光電專家新版鍵盤鼠標套裝,感覺很不錯,感謝勇明同學的推薦,所以連夜趕出這篇文章來回報他:)
上次提到同事提到了基本的技術問題我也沒有回答上來,其實他的問題很簡單:
<%@ taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %>
<%@ taglib prefix="bean" uri="http://jakarta.apache.org/struts/tags-bean" %>
<%@ taglib prefix="logic" uri="http://jakarta.apache.org/struts/tags-logic" %>
<%@ taglib prefix="nested" uri="http://jakarta.apache.org/struts/tags-nested" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
我們在jsp頁面中只是用http打頭的uri去引用這些標簽庫,但是沒有在web.xml中引用任何的dtd,那么系統去哪里知道這些標簽是怎么定義的呢?我就一下子被問倒了,這個還真是個問題,當時我就覺得應該是在某個jar中,但是我們的lib下面的jar好像又沒有這樣的jar,這些怎么辦?
我這個google的粉絲當然是要到google去尋找答案了,開始使用的關鍵字少,沒有抓到要點,而且用中文,在中文站點中沒有找到可以使用的文章,所以后來我用了“jsp taglib uri = http”,這時候找到了一篇文章http://faq.javaranch.com/view?JstlTagLibDefinitions,這里解釋了jstl標簽庫的使用方法也是像我們最后兩行那樣做一個定義,而所有的東西都在jstl.jar standard.jar這兩個jar中,我用winrar打開了這兩個jar,發現路徑下面果然有java/sun/com/jstl/core,原來這個uri的寫法對應了java的路徑,這樣就搞清楚了,那么struts的標簽也就在struts.jar里面了。這個問題就解決了,關鍵的問題還是沒有好好的把這些技術細節搞清楚。
附錄:使用tag標簽的方法(轉載來的文章片斷)
要使用tag標簽,JSP程序員必須做2件事:
· 聲明此tag標簽的tag庫
· 實現此tag標簽
聲明tag標簽所在的tag庫
如果要使用tag標簽,則應用JSP的taglib指示符來指定其tag庫(注意:taglib要在在使用此tag標簽之前聲明)
<%@ taglib uri=”/WEB-INF/tutorial-template.tld” prefix=”tt” %>
uri屬性定義了唯一的標簽庫描述(以下簡稱TLD),它可以是直接是tld文件名或一個獨一無二的名字。prefix是用來區別其它TLD中和本TLD中有重名的tag的一種手段。
TLD必須以.tld作為擴展名,并且存放在當前應用的WEB-INF目錄或其子目錄下。你可以通過它的文件名直接引用它,也可以通過別的方式間接地引用它。
以下taglib指示符直接引用一個TLD:
<%@ taglib uri=”/WEB-INF/tutorial-template.tld” prefix=”tt” %>
以下的taglib指示符通過一個邏輯名稱間接地引用一個TLD:
<%@ taglib uri=”/tutorial-template” prefix=”tt” %>
如果是間接引用TLD的話,那你必須還要在web.xml中定義此邏輯名稱與tld文件之間的映射,具體做法是在web.xml中加入一個名為taglib的元素:
<taglib>
<taglib-uri>/tutorial-template</taglib-uri>
<taglib-location>
/WEB-INF/tutorial-template.tld
</taglib-location>
</taglib>
文章來源:http://blog.donews.com/crabhn/archive/2006/02/20/735226.aspx
posted @ 2006-02-21 07:44 crabhn's blog 閱讀(1576) | 評論 (1) | 編輯 收藏