Repassando s� pro caso de alguem tb tiver a mesma d�vida ;-)
----- Repassado por RSZ012 Desenvolvimento/Rio/Vale em 07/08/2004 03:20 PM
-----
                                                                                       
                                                
                      RSZ012                                                           
                                                
                      Desenvolvimento          Para:    "Luiz Roberto" <[EMAIL 
PROTECTED]>                              
                                               cc:                                     
                                                
                      07/08/2004 02:20         Assunto: Re: [JUG-Petro]    D�vida 
sobre taglib persiste(Document link: RSZ012          
                      PM                       Desenvolvimento)                        
                                                
                                                                                       
                                                



Quando precisar � s� falar ;-)


Luis Henrique "Bulinha"




                                                                                       
                                                       
                      "Luiz Roberto"                                                   
                                                       
                      <[EMAIL PROTECTED]         Para:    <[EMAIL PROTECTED]>          
                                                 
                      web.com.br>                     cc:                              
                                                       
                                                      Assunto: Re: [JUG-Petro]    
D�vida sobre taglib persiste                                
                      07/08/2004 02:26 PM                                              
                                                       
                                                                                       
                                                       



Muito obrigado pela for�a. Em meu estudo sobre taglibs isso era a coisa que
eu estava mais empacando.


Luiz Roberto da Costa Gouv�a Jr.
Analista de Sistemas
----- Original Message -----


 From: [EMAIL PROTECTED]
 To: Luiz Roberto
 Sent: Thursday, July 08, 2004 2:13 PM
 Subject: Re: [JUG-Petro] D�vida sobre taglib persiste


 O que eu vou responder agora � pura dedu��o, principalmente pq eu n�o tive
 "saco" de verificar ;-)


 Como vc sabe, toda p�gina JSP � convertida em uma servlet que ira gerar
 aquele HTML e ser� compilada.
 Depois ela � carregada como uma thread, de modo que independente de
 quantas
 requisi��es o servidor receba, existir� apenas uma �nica instancia da
 servlet (a n�o ser que vc configure para funcionar diferente).

 As taglibs, quando desta convers�o/compila��o, s�o convertidas em chamadas
 as classes que criamos, ou seja, um objeto TagPai � instanciado e seus
 m�todos s�o chamados.

 Acredito que para se evitar que toda vez que vc chame a p�gina um objeto
 novo seja instanciado, (ou seja, mem�ria alocada), ele cria vari�veis de
 instancia para cada tag, e como no primeiro e-mail que eu te mandei a
 vari�vel era inicializada apenas na sua declara��o, ela ia incrementando
 eternamente, pois a instancia da JSP/Servlet s� sera removida da mem�ria
 quando o servidor for parado.

 Eu havia me esquecido de uma coisa em tags: sempre inicialize as vari�veis
 no doStartTag ;)

 []s Bulinha





                       "Luiz Roberto"

                       <[EMAIL PROTECTED]         Para:    <
 [EMAIL PROTECTED]>

                       web.com.br>                     cc:

                                                       Assunto: Re:
 [JUG-Petro]   D�vida sobre taglib persiste

                       07/08/2004 10:55 AM





 Agora deu certo. Porque dava aquele erro antes? A vari�vel do contador
 ficava na mem�ria?

 ----- Original Message -----
 From: <[EMAIL PROTECTED]>
 To: "Luiz Roberto" <[EMAIL PROTECTED]>
 Sent: Thursday, July 08, 2004 10:44 AM
 Subject: Re: [JUG-Petro] D�vida sobre taglib persiste



 coloca  no doStartTag

 contador=0







                       "Luiz Roberto"
                       <[EMAIL PROTECTED]         Para:
 <[EMAIL PROTECTED]>
                       web.com.br>                     cc:
                                                       Assunto: Re:
 [JUG-Petro]  D�vida sobre taglib persiste
                       07/08/2004 10:45 AM




 Funcionou certinho. Por�m ainda tem um problema. Quando eu dou refresh na
 p�gina ele n�o carrega de novo a seq��ncia de 0 a 3. Ele continua no 4, 5,
 6, ...

 ----- Original Message -----
 From: "Luiz Roberto" <[EMAIL PROTECTED]>
 To: <[EMAIL PROTECTED]>
 Sent: Thursday, July 08, 2004 8:44 AM
 Subject: ENC: [JUG-Petro] D�vida sobre taglib persiste


 >
 >
 > Atenciosamente,
 > ----------------------------------------
 > Luiz Roberto
 > Analista de Sistemas / Desenvolvedor
 >
 >
 >
 > -----Mensagem original-----
 > De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
 > Enviada em: quinta-feira, 8 de julho de 2004 08:08
 > Para: [EMAIL PROTECTED]
 > Assunto: Re: [JUG-Petro] D�vida sobre taglib persiste
 >
 >
 >
 > Tenta isso:
 >
 >
 > =========================== tag pai =============================
 >
 >
 > import javax.servlet.http.HttpServletRequest;
 > import javax.servlet.jsp.tagext.BodyTagSupport;
 >
 > public class TagPai extends BodyTagSupport {
 >
 >       private int contador=0;
 >
 >       public int doStartTag() {
 >
 >             return EVAL_BODY_INCLUDE;
 >       }
 >
 >       public int doAfterBody() {
 >             contador++;
 >
 >             if (contador>3)
 >                   return SKIP_BODY;
 >
 >             return EVAL_BODY_AGAIN;
 >       }
 >
 >       public int doEndTag() {
 >             contador=0;
 >             return EVAL_PAGE;
 >       }
 >
 >       public String getContador() {
 >             return contador;
 >       }
 >
 > }
 >
 > =========================== tag pai =============================
 >
 >
 > =========================== tag filha ===========================
 >
 >
 > import javax.servlet.jsp.JspWriter;
 > import javax.servlet.jsp.tagext.TagSupport;
 >
 > public class TagFilha extends TagSupport {
 >
 >       public int doStartTag() {
 >             TagPai tagpai = (TagPai) findAncestorWithClass(this,
 > TagPai.class);
 >             if (tagpai==null) return EVAL_BODY_INCLUDE;
 >             int contador = tagpai.getContador();
 >
 >             JspWriter out = pageContext.getOut();
 >             try {
 >             out.print(contador);
 >             } catch (Exception e) {}
 >             return EVAL_PAGE;
 >       }
 >
 >
 >
 > }
 >
 > =========================== tag filha ===========================
 >
 >
 >
 > []s Luis Henrique "Bulinha"
 >
 >
 >
 >
 >
 >                       "Luiz Roberto"
 >                       <[EMAIL PROTECTED]         Para:
 > "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
 >                       web.com.br>                   cc:
 >                                                     Assunto: [JUG-Petro]
 > D�vida sobre taglib persiste
 >                       07/07/2004 04:30 PM
 >                       Responder a
 >                       jug-petropolis
 >
 >
 >
 >
 > Ainda continuo com meu estudo em taglib e aparecem algumas d�vida. Vou
 > postar aqui um c�digo simples que exibe 3 vezes o n�mero 1 ao inv�s de
 > fazer o que eu queria que era aparecer 1, 2 e 3 em cada linha. Por�m
 quando
 > eu dou refresh(atualizar) no navegador ele incrementa o valor que est�
 > aparecendo no momento. Por exemplo: quando carrego a p�gina ele mostra 3
 > vezes o n�mero 1, quando eu dou refresh aparece 3 vezes o n�mero 2. O
 que
 > estou errando?
 >
 > ===> pai.java
 >
 > mport java.io.IOException;
 >
 > import javax.servlet.jsp.JspException;
 > import javax.servlet.jsp.JspWriter;
 > import javax.servlet.jsp.tagext.BodyContent;
 > import javax.servlet.jsp.tagext.BodyTagSupport;
 >
 > public class pai extends BodyTagSupport {
 >
 >  private int i = 0;
 >
 >  public int doStartTag()
 >  {
 >   return EVAL_PAGE;
 >  }
 >
 >  public int getI()
 >  {
 >   i = i + 1;
 >   return i;
 >  }
 >
 >  public int doAfterBody() throws JspException
 >  {
 >   BodyContent bc = getBodyContent();
 >   String s = bc.getString();
 >   JspWriter out = bc.getEnclosingWriter();
 >
 >   try {
 >    for(int j = 0; j < 3; j++) {
 >     out.print(s);
 >    }
 >   } catch (IOException e) {
 >    // TODO Auto-generated catch block
 >    e.printStackTrace();
 >   }
 >
 >   return SKIP_BODY;
 >  }
 >
 > }
 >
 > ===> filho.java
 >
 > import java.io.IOException;
 >
 > import javax.servlet.jsp.JspWriter;
 > import javax.servlet.jsp.tagext.BodyTagSupport;
 >
 > public class filho extends BodyTagSupport {
 >
 >  public int doStartTag()
 >  {
 >   JspWriter out = pageContext.getOut();
 >   pai papa = (pai)findAncestorWithClass(this, pai.class);
 >   try {
 >    out.print(papa.getI());
 >   } catch (IOException e) {
 >    // TODO Auto-generated catch block
 >    e.printStackTrace();
 >   }
 >   return SKIP_BODY;
 >  }
 >
 > }
 >
 > ===> teste.jsp
 >
 > < %@ taglib uri="/iterate" prefix="it"% >
 > < it:pai >
 >     < table border=10 >< tr >< td >
 >         < it:filho/ >
 >     < /td >< /tr >< /table >
 > < /it:pai >
 >
 >
 >
 >
 >  Y
 >  a
 >  h
 >  o
 >  o
 >  !
 >  G
 >  r
 >  o
 >  u
 >  p
 >  s
 >  S
 >  p
 >  o
 >  n
 >  s
 >  o
 >  r
 >
 >
 >
 >  A
 >  D
 >  V
 >  E
 >  R
 >  T
 >  I
 >  S
 >  E
 >  M
 >  E
 >  N
 >  T
 >
 >
 >
 >
 >
 >
 >
 >
 > Yahoo! Groups Links
 >       To visit your group on the web, go to:
 >       http://groups.yahoo.com/group/jug-petropolis/
 >
 >       To unsubscribe from this group, send an email to:
 >       [EMAIL PROTECTED]
 >
 >       Your use of Yahoo! Groups is subject to the Yahoo! Terms of
 Service.
 >
 >
 >
 >
 >
 >
 >
 > Yahoo! Groups Links
 >
 >
 >
 >
 >
 >
 >















------------------------ Yahoo! Groups Sponsor --------------------~--> 
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/5cFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/jug-petropolis/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 

Atrašyti