hi! here is a tag-handler class. In JSP API, it has been given that if the doStartTag() method returns EVAL_BODY_INCLUDE, then doInitBody() method will not be invoked. It will only be invoked if doStartTag() returns EVAL_BODY_BUFFERED. But in the given class, the doInitBody() method is invoked even the doStartTag() returns EVAL_BODY_INCLUDE. Please clear where i am wrong. ashok. _____________ package mytagdir; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.*; public class MyPage extends BodyTagSupport { public int doStartTag() throws JspException { return EVAL_BODY_INCLUDE; } public void doInitBody() throws JspException { System.out.println("initBody()"); } public int doAfterBody() throws JspException { return SKIP_BODY; } public int doEndTag() throws JspException { return EVAL_PAGE; } }
doInitBody() and doAfterBody() will be invoked when you return EVAL_BODY_INCLUDE. But the setBodyContent() method will be invoked only when you return EVAL_BODY_BUFFERED from doStartTag() (This is what i saw when i try testing). But the API Says when you return EVAL_BODY_INCLUDE , doInitBody() will not be invoked. Thanks! Satish Kolli,SCJP2 [This message has been edited by satish kolli (edited October 31, 2001).]
Originally posted by satish kolli: doInitBody() and doAfterBody() will be invoked when you return EVAL_BODY_INCLUDE. But the setBodyContent() method will be invoked only when you return EVAL_BODY_BUFFERED from doStartTag() (This is what i saw when i try testing). But the API Says when you return EVAL_BODY_INCLUDE , doInitBody() will not be invoked. Thanks! Satish Kolli,SCJP2 [This message has been edited by satish kolli (edited October 31, 2001).]
it says clearly on the spec (API) that doInitBody will be called only if doStartTag return EVAL_BODY_BUFFERED... so IMHO, something is wrong in the "implementation" u are using.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.