Criar minha taglib (RESOLVIDO)

2 respostas
maior_abandonado

Bom dia pessoal...

Para estudos, eu to tentando criar uma taglib, só pra aprender como faz...

to usando o netbeans 6...

alguem ai me ajuda a resolver esse erro??

Aqui esta o meu web.xml (a parte que declaro a taglib)

<taglib>
		<taglib-uri>Flavio</taglib-uri>
		<taglib-location>
                    /WEB-INF/tld/TrabalhandoComTaglib.tld
                </taglib-location>
	</taglib>

Eu to no windows, essas barras ai não são invertidas não né?

Aqui o meu arquivo .tld (o TrabalhandoComTaglib.tld)

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">
  <tlib-version>1.0</tlib-version>
  <jspversion>1.2</jspversion>
      
  <short-name>taglib_que_mostra_a_data</short-name>
  <uri>Flavio</uri>
  
   <tag>
       <name>data</name>
       <tagclass>DesenvolvendoTagLib</tagclass>
       <bodycontent>empty</bodycontent>
       
       <info> informações </info>
   </tag>    
</taglib>

Aqui a classe em questão da taglib ( a DesenvolvendoTagLib)

/**
 *
 * @author flavio
 */

import java.util.Calendar;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
public class DesenvolvendoTagLib extends TagSupport {
    
    public int doStartTag()throws JspTagException{
        
        try{
            Calendar agora = Calendar.getInstance();
            StringBuilder saida = new StringBuilder();

            String diaSemana[] = {
                "domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sabado"};

            String mes[] = {
                "janeiro", "fevereiro",    "março",    "abril",     "maio",    "junho", 
                "julho",   "agosto",    "setembro", "outulbro", "novembro", "dezembro"};

            saida.append(diaSemana[agora.get(Calendar.DAY_OF_WEEK)-1]);
            saida.append(" feira, ");
            saida.append(agora.get(Calendar.DAY_OF_MONTH));
            saida.append(" de ");
            saida.append(mes[agora.get(Calendar.MONTH)]);
            saida.append(" de ");
            saida.append(agora.get(Calendar.YEAR));

            //System.out.println(saida.toString());
        
            pageContext.getOut().print(saida.toString());
            
        }catch(java.io.IOException ioe){
            throw new JspTagException("Erro: IOException");
        }
        
        return SKIP_BODY;
    }
    

}

aqui o meu jsp pra testa-lo:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="Flavio" prefix="prefixo" %>%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h2>titulo da pagina que exibe a data!</h2>
        
        <prefixo:data />
    </body>
</html>

e ta dando esse erro... parece que não ta encontrando alguma coisa:

Compiling 1 source file to C:\projetos nb\Estudos\build\generated\classes
C:\projetos nb\Estudos\build\generated\src\org\apache\jsp\UtilizaTaglib_jsp.java:100: cannot find symbol
symbol  : class DesenvolvendoTagLib
location: class org.apache.jsp.UtilizaTaglib_jsp
    DesenvolvendoTagLib _jspx_th_prefixo_005fdata_005f0 = (DesenvolvendoTagLib) _005fjspx_005ftagPool_005fprefixo_005fdata_005fnobody.get(DesenvolvendoTagLib.class);
    ^
C:\projetos nb\Estudos\build\generated\src\org\apache\jsp\UtilizaTaglib_jsp.java:100: cannot find symbol
symbol  : class DesenvolvendoTagLib
location: class org.apache.jsp.UtilizaTaglib_jsp
    DesenvolvendoTagLib _jspx_th_prefixo_005fdata_005f0 = (DesenvolvendoTagLib) _005fjspx_005ftagPool_005fprefixo_005fdata_005fnobody.get(DesenvolvendoTagLib.class);
                                                           ^
C:\projetos nb\Estudos\build\generated\src\org\apache\jsp\UtilizaTaglib_jsp.java:100: cannot find symbol
symbol  : class DesenvolvendoTagLib
location: class org.apache.jsp.UtilizaTaglib_jsp
    DesenvolvendoTagLib _jspx_th_prefixo_005fdata_005f0 = (DesenvolvendoTagLib) _005fjspx_005ftagPool_005fprefixo_005fdata_005fnobody.get(DesenvolvendoTagLib.class);
                                                                                                                                          ^
Note: C:\projetos nb\Estudos\build\generated\src\org\apache\jsp\UtilizaTaglib_jsp.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 errors
C:\projetos nb\Estudos\nbproject\build-impl.xml:465: The following error occurred while executing this line:
C:\projetos nb\Estudos\nbproject\build-impl.xml:213: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 1 second)

2 Respostas

maior_abandonado

pessoal, foi só colocar a minha classe contendo a taglib dentro de algum pacote qualquer que funcionou…

victorwss

Utilize SimpleTagSupport ao invés de TagSupport que sua vida será mais fácil.

Criado 11 de agosto de 2008
Ultima resposta 11 de ago. de 2008
Respostas 2
Participantes 2