首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

自定义标签-众高手帮小弟我看下,这个有关问题出在哪,该怎么解决?

2013-09-11 
自定义标签-众高手帮我看下,这个问题出在哪,该如何解决?急!最近开始学习“自定义标签”,但在最后运行的时候

自定义标签-众高手帮我看下,这个问题出在哪,该如何解决?急!
最近开始学习“自定义标签”,但在最后运行的时候出现了异常,代码如下:
test.jsp:
<%@   page   contentType= "text/html;   charset=GBK "   %>
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN ">
<!DOCTYPE   taglib   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN ">
<%@   taglib   uri= "/WEB-INF/mytag.tld "   prefix= "mytag "%>
<html>
    <head>
        <title> My   JSP   'Test.jsp '   starting   page </title>
    </head>

    <body>
        This   is   my   JSP   page.   <br>
        Date   :   <mytag:demo   parameter= "date "   /> <br>
        File   :   <mytag:demo   parameter= "filename "   />
    </body>
</html>
-------------------------------------------
DemoTag.java:
package   jsp;

import   java.util.Date;

import   javax.servlet.http.*;
import   javax.servlet.jsp.*;
import   javax.servlet.jsp.tagext.*;

public   class   DemoTag   extends   TagSupport   {

    public   int   doStartTag()   throws   JspException   {
        try   {
            HttpServletRequest   request   =   (HttpServletRequest)pageContext.getRequest();
            JspWriter   out   =   pageContext.getOut();

            if   (parameter.compareToIgnoreCase( "filename ")   ==   0)
                out.print(request.getServletPath());
            else
                out.print(new   Date());

        }   catch   (java.io.IOException   e)   {
            throw   new   JspTagException(e.getMessage());
        }

        return   SKIP_BODY;
    }

    private   String   parameter   =   "date ";

    public   void   setParameter(String   parameter)   {
        this.parameter   =   parameter;
    }

    public   String   getParameter()   {
        return   parameter;
    }
}
-----------------------------------------
web.xml:
<?xml   version= "1.0 "   encoding= "UTF-8 "?>
<web-app   xmlns= "http://java.sun.com/xml/ns/j2ee "   xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance "   xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd "   version= "2.4 ">
    <jsp-config>
        <taglib>
            <taglib-uri> /WEB-INF/mytag.tld </taglib-uri>
            <taglib-location> /WEB-INF/mytag.tld </taglib-location>


        </taglib>
    </jsp-config>
    <servlet>
        <description> Added   by   JBuilder   to   compile   JSPs   with   debug   info </description>
        <servlet-name> debugjsp </servlet-name>
        <servlet-class> org.apache.jasper.servlet.JspServlet </servlet-class>
        <init-param>
            <param-name> classdebuginfo </param-name>
            <param-value> true </param-value>
        </init-param>
        <load-on-startup> 3 </load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name> debugjsp </servlet-name>
        <url-pattern> *.jsp </url-pattern>
    </servlet-mapping>
</web-app>
---------------------------------------------------
mytag.tld:
<?xml   version= "1.0 "   encoding= "ISO-8859-1 "?>
<taglib>
<tlib-version> 1.0 </tlib-version>
<jsp-version> 1.2 </jsp-version>

<tag>
    <name> demo </name>
    <tag-class> jsp.DemoTag </tag-class>
    <body-content> empty </body-content>
    <attribute>
        <name> parameter </name>
        <required> false </required>
        <rtexprvalue> true </rtexprvalue>
    </attribute>
</tag>

</taglib>
-------------------------------------------
出现如下错误:
2007-7-1   16:08:21   org.apache.catalina.core.StandardWrapperValve   invoke
严重:   Servlet.service()   for   servlet   debugjsp   threw   exception
org.apache.jasper.JasperException:   /test.jsp(12,11)   Unable   to   load   tag   handler   class   "jsp.DemoTag "   for   tag   "mytag:demo "
at   org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
at   org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
at   org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:196)
at   org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1318)
at   org.apache.jasper.compiler.Parser.parseElements(Parser.java:1564)
at   org.apache.jasper.compiler.Parser.parse(Parser.java:126)
at   org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
at   org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
at   org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
at   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)


at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at   java.lang.Thread.run(Thread.java:595)
请问该如何解决?谢谢!在线等······


[解决办法]
classes文件下应该有个jsp文件夹,jsp文件夹里有一个DemoTag.class才对
应为你的完整类名是jsp.DemoTag
我的异常网推荐解决方案:org.apache.jasper.JasperException: Unable to compile class,http://www.myexception.cn/j2ee/2308.html

热点排行