taglib.tld 内容如下: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion><shortname>mt</shortname> <uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</uri><info>My first Tag library</info> <tag><name>helloWorld</name><tagclass>com.acme.mytags.HelloWorld</tagclass> <bodycontent>empty</bodycontent> <info>A Hello world Tag</info></tag></taglib>
HelloWorld.java 内容:package com.acme.mytags;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;public class HelloWorld implements Tag { private PageContext pageContext; private Tag parent; public int doStartTag() throws javax.servlet.jsp.JspException { return SKIP_BODY; } public int doEndTag() throws javax.servlet.jsp.JspException { try { pageContext.getOut().write("Hello World!"); } catch(java.io.IOException e) { throw new JspException("IO Error: " + e.getMessage()); } return EVAL_PAGE; } public void release() {} public void setPageContext(final javax.servlet.jsp.PageContext pageContext) { this.pageContext=pageContext; } public void setParent(final javax.servlet.jsp.tagext.Tag parent) { this.parent=parent; } public javax.servlet.jsp.tagext.Tag getParent() { return parent; } }
in the web.xml in web-inf, add these lines after <web-app> tag (change the location of taglib.tld if necessary):<taglib> <taglib-uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</taglib-uri> <taglib-location>/WEB-INF/taglib.tld</taglib-location> </taglib>2. change <%@ taglib uri="mytags.jar" prefix="mt" %> to <%@ taglib uri="http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar" prefix="mt" %>
ok, here is what I have on my machine, jakarta-tomcat-4.0-b51.mytag.tld in jakarta-tomcat-4.0-b5\webapps\examples\WEB-INF\jsp\mytag.tld: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>mt</shortname> <uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</uri> <info>My first Tag library</info> <tag> <name>helloWorld</name> <tagclass>com.acme.mytags.HelloWorld</tagclass> <bodycontent>empty</bodycontent> <info>A Hello world Tag</info> </tag> </taglib>2. web.xml in \jakarta-tomcat-4.0-b5\webapps\examples\WEB-INF\web.xml: .... <taglib> <taglib-uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</taglib-uri> <taglib-location>/WEB-INF/jsp/mytag.tld</taglib-location> </taglib> ... 3. HelloWorld.class in jakarta-tomcat-4.0-b5\webapps\examples\WEB-INF\classes\com\acme\mytags\HelloWorld.class4. hello.jsp in jakarta-tomcat-4.0-b5\webapps\examples\jsp\simpletag\hello.jsp: <%@ taglib uri="http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar" prefix="mt" %> <HTML> <HEAD> <TITLE>Hello World!</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <HR> <mt:helloWorld/> <HR> </BODY> </HTML>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion><shortname>mt</shortname> <uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</uri><info>My first Tag library</info> <tag><name>helloWorld</name><tagclass>com.acme.mytags.HelloWorld</tagclass> <bodycontent>empty</bodycontent> <info>A Hello world Tag</info></tag></taglib>
private PageContext pageContext; private Tag parent; public int doStartTag() throws javax.servlet.jsp.JspException
{
return SKIP_BODY;
}
public int doEndTag() throws javax.servlet.jsp.JspException
{
try
{
pageContext.getOut().write("Hello World!");
}
catch(java.io.IOException e)
{
throw new JspException("IO Error: " + e.getMessage());
}
return EVAL_PAGE;
} public void release() {} public void setPageContext(final javax.servlet.jsp.PageContext pageContext)
{
this.pageContext=pageContext;
}
public void setParent(final javax.servlet.jsp.tagext.Tag parent)
{
this.parent=parent;
}
public javax.servlet.jsp.tagext.Tag getParent()
{
return parent;
}
}
<taglib-uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</taglib-uri>
<taglib-location>/WEB-INF/taglib.tld</taglib-location>
</taglib>2. change
<%@ taglib uri="mytags.jar" prefix="mt" %>
to
<%@ taglib uri="http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar" prefix="mt" %>
<taglib>
<taglib-uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</taglib-uri>
<taglib-location>/WEB-INF/taglib.tld</taglib-location>
</taglib>结果不能访问根,然后试将以上内容添加到<web-app></web-app>内,可以访问根.3.修改 /hello.jsp :
change
<%@ taglib uri="mytags.jar" prefix="mt" %>
to
<%@ taglib uri="http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar" prefix="mt" %> 结果又提示如下错误:
Error parsing JSP page /hello.jsp line 1
Error parsing tag-library http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar: java.lang.NullPointerException请再帮忙看看.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion>
<shortname>mt</shortname> <uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</uri>
<info>My first Tag library</info>
<tag>
<name>helloWorld</name>
<tagclass>com.acme.mytags.HelloWorld</tagclass>
<bodycontent>empty</bodycontent>
<info>A Hello world Tag</info>
</tag>
</taglib>2. web.xml in \jakarta-tomcat-4.0-b5\webapps\examples\WEB-INF\web.xml:
....
<taglib>
<taglib-uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</taglib-uri>
<taglib-location>/WEB-INF/jsp/mytag.tld</taglib-location>
</taglib>
...
3. HelloWorld.class in jakarta-tomcat-4.0-b5\webapps\examples\WEB-INF\classes\com\acme\mytags\HelloWorld.class4. hello.jsp in jakarta-tomcat-4.0-b5\webapps\examples\jsp\simpletag\hello.jsp:
<%@ taglib uri="http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar" prefix="mt" %>
<HTML>
<HEAD>
<TITLE>Hello World!</TITLE>
</HEAD> <BODY BGCOLOR="#FFFFFF">
<HR>
<mt:helloWorld/>
<HR>
</BODY>
</HTML>