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

时间:2013-12-14 17:19:04

标签: jsp taglib

我想为我的应用程序编写一些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。 我试图在谷歌和这里搜索这个错误,但找不到答案。 我错过了什么?

1 个答案:

答案 0 :(得分:1)

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

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

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