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