【问题标题】:my web.xml does not know taglib tag我的 web.xml 不知道 taglib 标签
【发布时间】:2013-01-30 12:50:34
【问题描述】:
我想在我的jsp中使用html标签,所以我必须在web.xml中添加标签库
当我将这些行添加到 web.xml 时:
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
它不知道 taglib 标签
【问题讨论】:
标签:
java
web.xml
taglib
struts-1
【解决方案1】:
较新版本的 JSP/Servlet 容器不需要 web.xml 中的 taglib 条目,因为容器会自动找到它。
您只需要在 JSP 页面中使用 <%@ taglib %> 指令即可使用 .tld 文件:
<%@ taglib prefix="html" uri="/WEB-INF/struts-html.tld" %>
【解决方案2】:
<taglib> 标签必须在<jsp-config> 标签内。
但是使用Struts2,你绝对不需要struts-html taglib,它来自更老的Struts 1,并且完全不同。
只要浏览一下Struts2 的功能,你就会发现你不必再使用 html-tags 了,幸运的是。
【解决方案3】:
标签库有三种配置方式。
-
手动配置 throw
web.xml: 确保将 tld 文件复制到 WEB-INF 文件夹,在 web.xml 中配置它们,如下所示,在 taglib 中使用 taglib 指令属性指令为<%@ taglib uri="mytagliburi" prefix="ww" %>。
.
<taglib>
<taglib-uri>mytagliburi</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
-
仅使用
taglib 指令手动配置:确保将tld 文件复制到WEB-INF 文件夹,并将taglib 目录中的直接配置为<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="ww" %>。
-
自动配置:这是简单的方法,在 Struts 版本 1.2 中使用,只需在项目
classpath 中包含 struts-taglib.jar 或将其复制到 WEB-INF/lib 文件夹。所有tld 详细信息都在struts-taglib.jar\META-INF\tld 文件夹中定义。在部署期间,所有 tld 将自动部署。但是,我们只能通过pre-fixed uri 名称访问它。在此方法中,我们不允许更改 taglib uri 名称。