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 >
 
 
 

Yahoo! Groups Sponsor
ADVERTISEMENT
click here


Yahoo! Groups Links

Atrašyti