Oi Galera,
Este é o meu primeiro post no fórum. Estou aprendendo a usar custom tags do JSP e meu objetivo é formar uma base para aprender Struts e JSF. Já passei por Servlets e JSP.
Já vasculhei uma boa parte da net (incluindo o próprio GUJ) atrás dessa solução.
Esta é a estrutura da minha aplicação:
app
|
+-- teste3.jsp
|
+-- WEB-INF
|
+-- web.xml
|
+-- classes
| |
| +-- minhastags
| |
| +-- MeuTagHandler.class
+-- tlds
|
+-- teste.tld
O arquivo teste3.jsp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<%@ taglib uri="/WEB-INF/tlds/teste.tld" prefix="msajsp" %>
<TITLE><msajsp:example /></TITLE>
<!-- <LINK REL=STYLESHEET
HREF="JSP-Styles.css"
TYPE="text/css"> -->
</HEAD>
<BODY>
<H1><msajsp:example /></H1>
<msajsp:example />
</BODY>
</HTML>
O arquivo web.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
<servlet>
<servlet-name>Principal</servlet-name>
<jsp-file>/teste3.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>Principal</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
O arquivo MeuTagHandler.java:
package minhastags;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
public class MeuTagHandler extends TagSupport {
public int doStartTag() {
try {
JspWriter out = pageContext.getOut();
out.print("Olá, Mundo, Custom tags!");
} catch(IOException ioe) {
System.out.println("Error in ExampleTag: " + ioe);
}
return(SKIP_BODY);
}
}
O arquivo teste.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.1</jsp-version>
<short-name>msajsp</short-name>
<info>
A tag library from More Servlets and JavaServer Pages, http://www.moreservlets.com/.
</info>
<tag>
<name>example</name>
<tag-class>MeuTagHandler</tag-class>
<body-content>empty</body-content>
<info>Simplest example: inserts one line of output</info>
</tag>
</taglib>
E o erro que dá quando acesso a URL http://localhost:8080/app/teste3.jsp:
exception
org.apache.jasper.JasperException: /teste3.jsp(8,11) Unable to load tag handler class “MeuTagHandler” for tag “msajsp:example”
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1242)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[color=red][size=18]A quem puder me ajudar, agradeço muito![/size][/color]