• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

doInitBody()

 
Ranch Hand
Posts: 153
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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;
}
}
 
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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).]
 
Ranch Hand
Posts: 224
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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?
 
Ranch Hand
Posts: 145
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
reply
    Bookmark Topic Watch Topic
  • New Topic