web.xml改成
<taglib>
<taglib-uri>/mytags</taglib-uri>
<taglib-location>/WEB-INF/jsp/
mytaglib.tld</taglib-location>
</taglib>然后jsp改成
<%@ taglib uri="/mytags" prefix="first" %>
<taglib>
<taglib-uri>/mytags</taglib-uri>
<taglib-location>/WEB-INF/jsp/
mytaglib.tld</taglib-location>
</taglib>然后jsp改成
<%@ taglib uri="/mytags" prefix="first" %>
uri="/mytags"只要和web.xml中的<taglib-uri>/mytags</taglib-uri>
对应就可以了
<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>
<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>
位置对吗?
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
我看了,没找到有用的信息,我现在的问题是:我用上面的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中 ,能指出错误吗?谢谢!!!!!
// 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>
tagtest
│ datetag.jsp
│
└─WEB-INF
│ web.xml
│
├─classes
│ └─com
│ └─liad
│ └─jsptaglibs
│ └─date
│ DateTag.class
│
└─tlds
simple.tld
我按照你提供的例子,运行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
我不知问题出在哪里?谢谢你的关照和帮助!!!!!