2010-10-25 57 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