2011-11-20 90 views
1

我嘗試使用下面的類基於JSP的自定義標籤:JSP定製標記的ClassNotFoundException

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 %> 
<% } %> 
+1

你是哪裏導入包在你的代碼? – Lion

+0

謝謝你,我將HelloWorldTest替換爲src/mypackage /並添加了'code <%@ tag import =「mypackage.HelloWorldTest」%>'to hello.tag – Alex

回答

2

你需要真正import the classimport指令。

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

(凡my.package被替換爲您的類的實際包)。