web.xml改成
<taglib>
       <taglib-uri>/mytags</taglib-uri>
       <taglib-location>/WEB-INF/jsp/
       mytaglib.tld</taglib-location>
    </taglib>然后jsp改成
<%@ taglib uri="/mytags" prefix="first" %>

解决方案 »

  1.   

    同意楼上的
    uri="/mytags"只要和web.xml中的<taglib-uri>/mytags</taglib-uri>
    对应就可以了
      

  2.   

    to liad()在web.xml中
    <taglib>
           <taglib-uri>/mytags</taglib-uri>
           <taglib-location>/WEB-INF/jsp/
           mytaglib.tld</taglib-location>
        </taglib>
    应放在那个部分?我的web.xml为:?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>    <display-name>Tomcat Examples</display-name>
        <description>
          Tomcat Example servlets and JSP pages.
        </description>    <!-- Define servlet-mapped and path-mapped example filters -->
        <filter>
            <filter-name>Servlet Mapped Filter</filter-name>
            <filter-class>filters.ExampleFilter</filter-class>
    <init-param>
        <param-name>attribute</param-name>
        <param-value>filters.ExampleFilter.SERVLET_MAPPED</param-value>
    </init-param>
        </filter>
        <filter>
            <filter-name>Path Mapped Filter</filter-name>
            <filter-class>filters.ExampleFilter</filter-class>
    <init-param>
        <param-name>attribute</param-name>
        <param-value>filters.ExampleFilter.PATH_MAPPED</param-value>
    </init-param>
        </filter>
        <filter>
            <filter-name>Request Dumper Filter</filter-name>
            <filter-class>filters.RequestDumperFilter</filter-class>
        </filter>    <!-- Example filter to set character encoding on each request -->
        <filter>
            <filter-name>Set Character Encoding</filter-name>
            <filter-class>filters.SetCharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>EUC_JP</param-value>
            </init-param>
        </filter>    <filter>
            <filter-name>Compression Filter</filter-name>
            <filter-class>compressionFilters.CompressionFilter</filter-class>        <init-param>
              <param-name>compressionThreshold</param-name>
              <param-value>10</param-value>
            </init-param>
            <init-param>
              <param-name>debug</param-name>
              <param-value>0</param-value>
            </init-param>
        </filter>    <!-- Define filter mappings for the defined filters -->
        <filter-mapping>
            <filter-name>Servlet Mapped Filter</filter-name>
    <servlet-name>invoker</servlet-name>
        </filter-mapping>
        <filter-mapping>
            <filter-name>Path Mapped Filter</filter-name>
    <url-pattern>/servlet/*</url-pattern>
        </filter-mapping>
    <!-- Example filter mapping to apply the "Set Character Encoding" filter
         to *all* requests processed by this web application -->
    <!--
        <filter-mapping>
            <filter-name>Set Character Encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    --><!--
        <filter-mapping>
          <filter-name>Compression Filter</filter-name>
          <url-pattern>/CompressionTest</url-pattern>
        </filter-mapping>
    --><!--
        <filter-mapping>
            <filter-name>Request Dumper Filter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    -->    <!-- Define example application events listeners -->
        <listener>
            <listener-class>listeners.ContextListener</listener-class>
        </listener>
        <listener>
            <listener-class>listeners.SessionListener</listener-class>
        </listener>    <!-- Define servlets that are included in the example application -->    <servlet>
            <servlet-name>SendMailServlet</servlet-name>
            <servlet-class>SendMailServlet</servlet-class>
        </servlet>    <servlet>
            <servlet-name>
                snoop
            </servlet-name>
            <servlet-class>
                SnoopServlet
            </servlet-class>
    <!--
            <init-param>
                <param-name>foo</param-name>
                <param-value>bar</param-value>
            </init-param>
    -->
            <run-as>
                <description>Security role for anonymous access</description>
                <role-name>tomcat</role-name>
            </run-as>
        </servlet>    <servlet>
          <servlet-name>
              servletToJsp
          </servlet-name>
          <servlet-class>
              servletToJsp
          </servlet-class>
        </servlet>
            <servlet>
            <servlet-name>
                CompressionFilterTestServlet
            </servlet-name>
            <servlet-class>
                compressionFilters.CompressionFilterTestServlet
            </servlet-class>    </servlet>    <servlet-mapping>
            <servlet-name>invoker</servlet-name>
            <url-pattern>/servlet/*</url-pattern>
        </servlet-mapping>    <servlet-mapping>
            <servlet-name>
                CompressionFilterTestServlet
            </servlet-name>
            <url-pattern>
                /CompressionTest
            </url-pattern>
        </servlet-mapping>    <servlet-mapping>
            <servlet-name>SendMailServlet</servlet-name>
            <url-pattern>/SendMailServlet</url-pattern>
        </servlet-mapping>    <servlet-mapping>
            <servlet-name>
                snoop
            </servlet-name>
            <url-pattern>
                /snoop
            </url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>
                servletToJsp
            </servlet-name>
            <url-pattern>
                /servletToJsp
            </url-pattern>
        </servlet-mapping>    <taglib>
            <taglib-uri>
       http://jakarta.apache.org/tomcat/debug-taglib
            </taglib-uri>
            <taglib-location>
               /WEB-INF/jsp/debug-taglib.tld
            </taglib-location>
        </taglib>
       <taglib>
            <taglib-uri>
       http://jakarta.apache.org/tomcat/examples-taglib
            </taglib-uri>
            <taglib-location>
               /WEB-INF/jsp/example-taglib.tld
            </taglib-location>
        </taglib><taglib>
           <taglib-uri>/mytags</taglib-uri>
           <taglib-location>/WEB-INF/jsp/
           mytaglib.tld</taglib-location>
        </taglib>
        
      

  3.   

    <resource-ref>
          <res-ref-name>mail/Session</res-ref-name>
          <res-type>javax.mail.Session</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>    <security-constraint>
          <display-name>Example Security Constraint</display-name>
          <web-resource-collection>
             <web-resource-name>Protected Area</web-resource-name>
     <!-- Define the context-relative URL(s) to be protected -->
             <url-pattern>/jsp/security/protected/*</url-pattern>
     <!-- If you list http methods, only those methods are protected -->
     <http-method>DELETE</http-method>
             <http-method>GET</http-method>
             <http-method>POST</http-method>
     <http-method>PUT</http-method>
          </web-resource-collection>
          <auth-constraint>
             <!-- Anyone with one of the listed roles may access this area -->
             <role-name>tomcat</role-name>
     <role-name>role1</role-name>
          </auth-constraint>
        </security-constraint>    <!-- Default login configuration uses form-based authentication -->
        <login-config>
          <auth-method>FORM</auth-method>
          <realm-name>Example Form-Based Authentication Area</realm-name>
          <form-login-config>
            <form-login-page>/jsp/security/protected/login.jsp</form-login-page>
            <form-error-page>/jsp/security/protected/error.jsp</form-error-page>
          </form-login-config>
        </login-config>    <!-- Security roles referenced by this web application -->
        <security-role>
          <role-name>role1</role-name>
        </security-role>
        <security-role>
          <role-name>tomcat</role-name>
        </security-role>    <!-- Environment entry examples -->
        <!--env-entry>
          <env-entry-description>
             The maximum number of tax exemptions allowed to be set.
          </env-entry-description>
          <env-entry-name>maxExemptions</env-entry-name>
          <env-entry-value>15</env-entry-value>
          <env-entry-type>java.lang.Integer</env-entry-type>
        </env-entry-->
        <env-entry>
          <env-entry-name>minExemptions</env-entry-name>
          <env-entry-value>1</env-entry-value>
          <env-entry-type>java.lang.Integer</env-entry-type>
        </env-entry>
        <env-entry>
          <env-entry-name>foo/name1</env-entry-name>
          <env-entry-value>value1</env-entry-value>
          <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>
        <env-entry>
          <env-entry-name>foo/bar/name2</env-entry-name>
          <env-entry-value>true</env-entry-value>
          <env-entry-type>java.lang.Boolean</env-entry-type>
        </env-entry>
        <env-entry>
          <env-entry-name>name3</env-entry-name>
          <env-entry-value>1</env-entry-value>
          <env-entry-type>java.lang.Integer</env-entry-type>
        </env-entry>
        <env-entry>
          <env-entry-name>foo/name4</env-entry-name>
          <env-entry-value>10</env-entry-value>
          <env-entry-type>java.lang.Integer</env-entry-type>
        </env-entry>    <!-- EJB Reference -->
        <ejb-ref>
          <description>Example EJB Reference</description>
          <ejb-ref-name>ejb/Account</ejb-ref-name>
          <ejb-ref-type>Entity</ejb-ref-type>
          <home>com.mycompany.mypackage.AccountHome</home>
          <remote>com.mycompany.mypackage.Account</remote>
        </ejb-ref>    <!-- Local EJB Reference -->
        <ejb-local-ref>
          <description>Example Local EJB Reference</description>
          <ejb-ref-name>ejb/ProcessOrder</ejb-ref-name>
          <ejb-ref-type>Session</ejb-ref-type>
          <local-home>com.mycompany.mypackage.ProcessOrderHome</local-home>
          <local>com.mycompany.mypackage.ProcessOrder</local>
        </ejb-local-ref></web-app>
    我在web.xml中所放的
    <taglib>
           <taglib-uri>/mytags</taglib-uri>
           <taglib-location>/WEB-INF/jsp/
           mytaglib.tld</taglib-location>
        </taglib>
    位置对吗?
      

  4.   

    你看看http://java.sun.com/dtd/web-app_2_3.dtd就知道taglib应该放在哪里了
      

  5.   

    你可以用XMLSPY来察看该dtd文件
    web-app sequence of
    icon 0 or 1 
    display-name 0 or 1 
    description 0 or 1 
    distributable 0 or 1 
    context-param 0 or more 
    filter 0 or more 
    filter-mapping 0 or more 
    listener 0 or more 
    servlet 0 or more 
    servlet-mapping 0 or more 
    session-config 0 or 1 
    mime-mapping 0 or more 
    welcome-file-list 0 or 1 
    error-page 0 or more 
    taglib 0 or more 
    resource-env-ref 0 or more 
    resource-ref 0 or more 
    security-constraint 0 or more 
    login-config 0 or 1 
    security-role 0 or more 
    env-entry 0 or more 
    ejb-ref 0 or more 
    ejb-local-ref 0 or more 
      

  6.   

    To liad()
    我看了,没找到有用的信息,我现在的问题是:我用上面的web.xml 启动tomcat,运行jsp错误为type Status reportmessage /examples/jsp/hello.jspdescription The requested resource (/examples/jsp/hello.jsp) is not available.
    我想这说所明了web.xml没配置好,我把web.xml中的:<taglib>
           <taglib-uri>/mytags</taglib-uri>
           <taglib-location>/WEB-INF/jsp/
           mytaglib.tld</taglib-location>
        </taglib>
     删除运行,jsp错误为:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: File "/mytags" not found这说明了jsp页面从web.xml中没发现/mytags.我吧<taglib-uri>/mytags</taglib-uri>
           <taglib-location>/WEB-INF/jsp/
           mytaglib.tld</taglib-location>
        </taglib>
     加入web.xml中重起tomcat就出现前面的错误:type Status reportmessage /examples/jsp/hello.jspdescription The requested resource (/examples/jsp/hello.jsp) is not available
    我想问题处在web.xml中 ,能指出错误吗?谢谢!!!!!
      

  7.   

    给你一个最简单的例子,来自《Professional JSP Tag Libraries》
    // DateTag.java
    package com.liad.jsptaglibs.date;import java.text.DateFormat;
    import java.util.Date;
    import java.util.Locale;import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspTagException;
    import javax.servlet.jsp.tagext.TagSupport;/**
     * A custom tag that displays the current date.
     *
     * @author    Simon Brown
     */
    public class DateTag extends TagSupport {  /**
       * Called when the starting tag is encountered.
       */
      public int doStartTag() throws JspException {    // get the locale of the client and create an appropriate date format
        Locale loc = pageContext.getRequest().getLocale();
        DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, loc);    try {
          // and write out the formatted date to the page
          pageContext.getOut().write(df.format(new Date()));
        } catch (java.io.IOException ioe) {
          throw new JspTagException(ioe.getMessage());
        }    // and skip evaluating the body of the tag (as there shouldn't be one)
        return SKIP_PAGE;
      }}simple.tld
    ==========
    <?xml version="1.0" encoding="ISO-8859-1" ?> 
    <!DOCTYPE taglib
      PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
      "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"><taglib>   <tlib-version>1.0</tlib-version> 
      <jsp-version>1.2</jsp-version>
      <short-name>simple</short-name>
      <description>Examples for the Simple Tags chapter</description>
      
      <tag> 
        <name>date</name> 
        <tag-class>com.liad.jsptaglibs.date.DateTag</tag-class>
        <body-content>empty</body-content>
        <description>Inserts the current date into the page</description> 
      </tag>
      
    </taglib>web.xml
    =======
    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'><web-app>
      <display-name>Professional JSP Tag Libraries</display-name>
      <taglib>
        <taglib-uri>/simpleTaglib</taglib-uri>
        <taglib-location>/WEB-INF/tlds/simple.tld</taglib-location>
      </taglib>
    </web-app>datetag.jsp
    ===========
    <html>  <head>
        <title>Professional JSP Tag Libraries</title>
      </head>  <%@ taglib uri="/simpleTaglib" prefix="simple" %>  <body>    <h1>The date is <simple:date/></h1>  </body></html>
      

  8.   

    用dos命令tree /f获得的目录结构是
    tagtest
    │  datetag.jsp

    └─WEB-INF
        │  web.xml
        │
        ├─classes
        │  └─com
        │      └─liad
        │          └─jsptaglibs
        │              └─date
        │                      DateTag.class
        │
        └─tlds
                simple.tld
      

  9.   

    To liad()
    我按照你提供的例子,运行datetag.jsp
    tomcat出现的错误还是:
    type Status reportmessage /tagTestCenter/jsp/datetag.jspdescription The requested resource (/tagTestCenter/jsp/datetag.jsp) is not available.
    --------------------------------------------------------------------------------
    在dos用命令tree /f 显示如下:
    tagTestCenter
    ├─jsp
    │      DateTag.java
    │      datetag.jsp

    └─WEB-INF
        │  web.xml
        │
        ├─tlds
        │      simple.tld
        │
        └─classes
            └─com
                └─liad
                    └─jsptaglibs
                        └─date
                                DateTag.class
    我不知问题出在哪里?谢谢你的关照和帮助!!!!!