【问题标题】:JSP custom tag ClassNotFoundExceptionJSP 自定义标签 ClassNotFoundException
【发布时间】:2011-11-20 15:43:41
【问题描述】:

我正在尝试在基于 JSP 的自定义标记中使用以下类:

public class HelloWorldTest {
    public void hello1() { }
}

标签文件在WEB-INF/tags/hello.tag:

<%@ tag language="java" pageEncoding="ISO-8859-1" %>
<% HelloWorldTest hello; %>

我正在尝试使用来自index.jsp 的标签:

<%@taglib tagdir="/WEB-INF/tags" prefix="my"%&gt;
<%@ page contentType="text/html;charset=UTF-8" language="java" %&gt;
<html>
  <body>
    <my:hello></my:hello>
  </body>
</html>

我得到以下异常:

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:178)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

问题是尝试使用HelloWorldTest 类,因为没有它的标签可以正常工作:

<%@ tag language="java" pageEncoding="ISO-8859-1" %>
<% for(int i = 0; i < 5; i++) { %>
  <%= i %>
<% } %>

【问题讨论】:

  • 你在代码中哪里导入包?
  • 谢谢,我将 HelloWorldTest 替换为 src/mypackage/ 并将code &lt;%@ tag import="mypackage.HelloWorldTest" %&gt; 添加到 hello.tag

标签: java jsp custom-tag


【解决方案1】:

您实际上需要使用import 指令来import the class。

<%@ page import="my.package.HelloWorld" %>

(其中my.package 替换为您班级的实际包。)

【讨论】:

    猜你喜欢
    • 2014-05-11
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多