2010-10-25 56 views
1

應該在JSP文件的開頭添加以<%<%@開頭的行,以便能夠使用該標記。JSP應該添加什麼taglib?

我在jsp的開頭添加了以下行。

<%@標籤庫前綴= 「HTML」 URI = 「http://struts.apache.org/tags-html」 %>

但是Eclipse IDE說

標籤處理類爲 「HTML:鏈接」(org.apache.struts.taglib.html.LinkTag)爲沒有找到在Java構建路徑

旁邊的< html:link>標記。

這裏有什麼問題?

我所試圖做的是 - 從homepage.jsp通過支柱負載的Page1.jsp的ActionMapping

+1

是否在taglib.tld文件中聲明瞭taglib? – 2010-10-25 13:31:58

回答

5

如果你已經下載了完整的struts jar,你不需要在web.xml中聲明你的taglibs。

  1. here下載Struts。在我的情況下,我已經下載了struts-1.3.10-all.zip
  2. <zipped file>\struts-1.3.10\lib中的所有罐子複製到您的WEB-INF\lib文件夾中(在您的項目中)。
  3. 在每個JSP頁面的頂部,將使用JSP代碼,添加線(S)宣告該特定頁面上使用的JSP標籤庫,這樣的:

實施例:

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> 

更多關於Struts 1.x installation Guide

2

你必須在你web.xml部署描述符聲明一下:

<taglib> 
    <taglib-uri>http://struts.apache.org/tags-html</taglib-uri> 
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
    </taglib> 

並保持TLD文件的副本,在那裏指定的位置。

此外,您必須檢查您的類路徑(本例中爲/ WEB-INF/lib文件夾)中是否包含struts-taglib.jar

+0

我認爲對於最新的容器,你不需要在web.xml中指定它。但是你必須把tld放在合適的文件夾中。例如在WEB-INF下。 – kukudas 2010-10-25 14:40:29

+1

@kukudas - 您無需將TLD文件放在任何地方。 taglibs實現將在相關JAR的META-INF目錄中找到TLD。 – 2010-10-25 14:52:11

+0

哦對,我記得在某個地方讀書。所以基本上你只需要注意JAR文件在你的類路徑中,這就是我還是我錯了? – kukudas 2010-10-25 18:56:52