|
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 Links
|
