JSP自定义标签ClassNotFoundException

发布于 2024-12-17 05:59:52 字数 1316 浏览 3 评论 0 原文

我正在尝试在基于 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 %>
<% } %>

I'm trying to use the following class in a JSP-based custom tag:

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

The tag file is in WEB-INF/tags/hello.tag:

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

I'm trying to use the tag from index.jsp:

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

I get the following exception:

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)

The problem is trying to use the HelloWorldTest class, because a tag without it works fine:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尐偏执 2024-12-24 05:59:52

您实际上需要使用 导入类 >导入指令。

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

(其中 my.package 替换为类的实际包。)

You need to actually import the class with an import directive.

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

(Where my.package is replaced with your class's actual package.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文