It's not a secret anymore!*
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes doInitBody() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Bookmark "doInitBody()" Watch "doInitBody()" New topic
Author

doInitBody()

ashok khetan
Ranch Hand

Joined: Jul 29, 2001
Posts: 153
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;
}
}
satish kolli
Greenhorn

Joined: Sep 21, 2001
Posts: 24
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).]
Win Yu
Ranch Hand

Joined: Oct 17, 2001
Posts: 224
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).]

So the spec is wrong? Can any one clear this?

Win
Ernest Lee
Ranch Hand

Joined: Aug 20, 2001
Posts: 145
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://aspose.com/file-tools
 
subject: doInitBody()
 
Similar Threads
Return SKIP_PAGE from doStartTag()
JavaBeat question, SKIP_BODY
Nested bean: doEngTag() not invoked
Why doInitBody Not invoked?
Extending BodyTagSupport (HFS CH10 Q9)