package org.japanosample.test.legacy;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.IterationTag;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
import org.japano.metadata.annotation.JapanoAttribute;
import org.japano.metadata.annotation.JapanoTag;
@JapanoTag ( library="/test/legacy" )
public class TestTag extends TagSupport
{
private Tag parent;
private int cnt;
private String attr;
@JapanoAttribute ( required = true )
public void setAttribute(String attr)
{
this.attr=attr;
}
public int doStartTag() throws javax.servlet.jsp.JspException
{
try
{
pageContext.getOut().print("[START attr=\""+attr+"\"]");
cnt=0;
}
catch(IOException ioe)
{
throw new JspException(ioe);
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() throws javax.servlet.jsp.JspException
{
try
{
pageContext.getOut().print("[END]");
}
catch(IOException ioe)
{
throw new JspException(ioe);
}
return Tag.EVAL_PAGE;
}
public int doAfterBody() throws JspException
{
return cnt++ < 2 ? IterationTag.EVAL_BODY_AGAIN : IterationTag.SKIP_BODY;
}
}