一尘不染

找不到JSP 2标记文件“ / WEB-INF / tags”

jsp

我想为我的应用程序编写一些jsp标记文件。我关注了这篇文章:http : //www.techrepublic.com/article/an-
introduction-to-jsp-20s-tag-files/

但是,当我打开包含以下内容的jsp页面时,我陷入了困境:

<%@ taglib prefix="h" uri="/WEB-INF/tags"%>

我有一个例外。

HTTP Status 500 - /test.jsp (line: 8, column: 41) File "/WEB-INF/tags" not found
org.apache.jasper.JasperException: /test.jsp (line: 8, column: 41) File "/WEB-INF/tags" not found
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)

如果刷新页面,有时会得到另一个页面:

HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.test_jsp
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.test_jsp

我所做的只是在Eclipse中在WebContent / WEB-INF中创建了一个名为“ tags”的文件夹。我创建了一个标签文件“
email.tag”,其内容如下:

<%@ tag language="java" pageEncoding="ISO-8859-1"%>
<%@ attribute name="email" required="true" %>
<%
    String emailOutput = "<a href=\"mailto:{$email}\">${email}</a>";
%>
<%=emailOutput %>

Eclipse自动完成功能可以识别并提出以下建议:

<h:email email=""></h:email>

我使用Tomcat7。我试图在Google和此处搜索此错误,但找不到答案。我想念什么?


阅读 512

收藏
2020-06-10

共1个答案

一尘不染

这不是必须使用标记文件的方式。正确的语法是

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

参见http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html

2020-06-10