blob: d35243a7fd1fceaaef6efddaf2824373d8f40a1a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>BodyTag</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BodyTag";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../javax/servlet/jsp/tagext/BodyContent.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/servlet/jsp/tagext/BodyTagSupport.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/servlet/jsp/tagext/BodyTag.html" target="_top">Frames</a></li>
<li><a href="BodyTag.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.servlet.jsp.tagext</div>
<h2 title="Interface BodyTag" class="title">Interface BodyTag</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/IterationTag.html" title="interface in javax.servlet.jsp.tagext">IterationTag</a>, <a href="../../../../javax/servlet/jsp/tagext/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html" title="interface in javax.servlet.jsp.tagext">Tag</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/BodyTagSupport.html" title="class in javax.servlet.jsp.tagext">BodyTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/BundleSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">BundleSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/BundleTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">BundleTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/BundleTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">BundleTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/FormatNumberSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">FormatNumberSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/FormatNumberTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">FormatNumberTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/FormatNumberTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">FormatNumberTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/ImportSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">ImportSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/ImportTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">ImportTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/ImportTag.html" title="class in org.apache.taglibs.standard.tag.el.core">ImportTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/MessageSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">MessageSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/MessageTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">MessageTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/MessageTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">MessageTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/OutSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">OutSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/OutTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">OutTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/OutTag.html" title="class in org.apache.taglibs.standard.tag.el.core">OutTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/ParamSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">ParamSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/xml/ParamSupport.html" title="class in org.apache.taglibs.standard.tag.common.xml">ParamSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/ParamSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">ParamSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/ParamTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/xml/ParamTag.html" title="class in org.apache.taglibs.standard.tag.rt.xml">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/ParamTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/sql/ParamTag.html" title="class in org.apache.taglibs.standard.tag.rt.sql">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/ParamTag.html" title="class in org.apache.taglibs.standard.tag.el.core">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/xml/ParamTag.html" title="class in org.apache.taglibs.standard.tag.el.xml">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/ParamTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/sql/ParamTag.html" title="class in org.apache.taglibs.standard.tag.el.sql">ParamTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/sql/ParamTagSupport.html" title="class in org.apache.taglibs.standard.tag.common.sql">ParamTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/ParseDateSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">ParseDateSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/ParseDateTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">ParseDateTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/ParseDateTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">ParseDateTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/ParseNumberSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">ParseNumberSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/ParseNumberTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">ParseNumberTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/ParseNumberTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">ParseNumberTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/xml/ParseSupport.html" title="class in org.apache.taglibs.standard.tag.common.xml">ParseSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/xml/ParseTag.html" title="class in org.apache.taglibs.standard.tag.rt.xml">ParseTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/xml/ParseTag.html" title="class in org.apache.taglibs.standard.tag.el.xml">ParseTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/sql/QueryTag.html" title="class in org.apache.taglibs.standard.tag.rt.sql">QueryTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/sql/QueryTag.html" title="class in org.apache.taglibs.standard.tag.el.sql">QueryTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.html" title="class in org.apache.taglibs.standard.tag.common.sql">QueryTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/RedirectSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">RedirectSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/RedirectTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">RedirectTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/RedirectTag.html" title="class in org.apache.taglibs.standard.tag.el.core">RedirectTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/SetSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">SetSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/SetTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">SetTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/SetTag.html" title="class in org.apache.taglibs.standard.tag.el.core">SetTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/fmt/TimeZoneSupport.html" title="class in org.apache.taglibs.standard.tag.common.fmt">TimeZoneSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/fmt/TimeZoneTag.html" title="class in org.apache.taglibs.standard.tag.rt.fmt">TimeZoneTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/fmt/TimeZoneTag.html" title="class in org.apache.taglibs.standard.tag.el.fmt">TimeZoneTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/xml/TransformSupport.html" title="class in org.apache.taglibs.standard.tag.common.xml">TransformSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/xml/TransformTag.html" title="class in org.apache.taglibs.standard.tag.rt.xml">TransformTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/xml/TransformTag.html" title="class in org.apache.taglibs.standard.tag.el.xml">TransformTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/sql/UpdateTag.html" title="class in org.apache.taglibs.standard.tag.rt.sql">UpdateTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/sql/UpdateTag.html" title="class in org.apache.taglibs.standard.tag.el.sql">UpdateTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/sql/UpdateTagSupport.html" title="class in org.apache.taglibs.standard.tag.common.sql">UpdateTagSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/common/core/UrlSupport.html" title="class in org.apache.taglibs.standard.tag.common.core">UrlSupport</a>, <a href="../../../../org/apache/taglibs/standard/tag/rt/core/UrlTag.html" title="class in org.apache.taglibs.standard.tag.rt.core">UrlTag</a>, <a href="../../../../org/apache/taglibs/standard/tag/el/core/UrlTag.html" title="class in org.apache.taglibs.standard.tag.el.core">UrlTag</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">BodyTag</span>
extends <a href="../../../../javax/servlet/jsp/tagext/IterationTag.html" title="interface in javax.servlet.jsp.tagext">IterationTag</a></pre>
<div class="block">The BodyTag interface extends IterationTag by defining additional methods that let a tag handler manipulate the
content of evaluating its body.
<p>
It is the responsibility of the tag handler to manipulate the body content. For example the tag handler may take the
body content, convert it into a String using the bodyContent.getString method and then use it. Or the tag handler may
take the body content and write it out into its enclosing JspWriter using the bodyContent.writeOut method.
<p>
A tag handler that implements BodyTag is treated as one that implements IterationTag, except that the doStartTag
method can return SKIP_BODY, EVAL_BODY_INCLUDE or EVAL_BODY_BUFFERED.
<p>
If EVAL_BODY_INCLUDE is returned, then evaluation happens as in IterationTag.
<p>
If EVAL_BODY_BUFFERED is returned, then a BodyContent object will be created (by code generated by the JSP compiler)
to capture the body evaluation. The code generated by the JSP compiler obtains the BodyContent object by calling the
pushBody method of the current pageContext, which additionally has the effect of saving the previous out value. The
page compiler returns this object by calling the popBody method of the PageContext class; the call also restores the
value of out.
<p>
The interface provides one new property with a setter method and one new action method.
<p>
<B>Properties</B>
<p>
There is a new property: bodyContent, to contain the BodyContent object, where the JSP Page implementation object
will place the evaluation (and reevaluation, if appropriate) of the body. The setter method (setBodyContent) will
only be invoked if doStartTag() returns EVAL_BODY_BUFFERED and the corresponding action element does not have an
empty body.
<p>
<B>Methods</B>
<p>
In addition to the setter method for the bodyContent property, there is a new action method: doInitBody(), which is
invoked right after setBodyContent() and before the body evaluation. This method is only invoked if doStartTag()
returns EVAL_BODY_BUFFERED.
<p>
<B>Lifecycle</B>
<p>
Lifecycle details are described by the transition diagram below. Exceptions that are thrown during the computation of
doStartTag(), setBodyContent(), doInitBody(), BODY, doAfterBody() interrupt the execution sequence and are propagated
up the stack, unless the tag handler implements the TryCatchFinally interface; see that interface for details.
<p>
<IMG src="doc-files/BodyTagProtocol.gif" alt="Lifecycle Details Transition Diagram for BodyTag">
<p>
<B>Empty and Non-Empty Action</B>
<p>
If the TagLibraryDescriptor file indicates that the action must always have an empty element body, by an
&lt;body-content&gt; entry of "empty", then the doStartTag() method must return SKIP_BODY. Otherwise, the
doStartTag() method may return SKIP_BODY, EVAL_BODY_INCLUDE, or EVAL_BODY_BUFFERED.
<p>
Note that which methods are invoked after the doStartTag() depends on both the return value and on if the custom
action element is empty or not in the JSP page, not how it's declared in the TLD.
<p>
If SKIP_BODY is returned the body is not evaluated, and doEndTag() is invoked.
<p>
If EVAL_BODY_INCLUDE is returned, and the custom action element is not empty, setBodyContent() is not invoked,
doInitBody() is not invoked, the body is evaluated and "passed through" to the current out, doAfterBody() is invoked
and then, after zero or more iterations, doEndTag() is invoked. If the custom action element is empty, only doStart()
and doEndTag() are invoked.
<p>
If EVAL_BODY_BUFFERED is returned, and the custom action element is not empty, setBodyContent() is invoked,
doInitBody() is invoked, the body is evaluated, doAfterBody() is invoked, and then, after zero or more iterations,
doEndTag() is invoked. If the custom action element is empty, only doStart() and doEndTag() are invoked.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/BodyTag.html#EVAL_BODY_BUFFERED">EVAL_BODY_BUFFERED</a></span></code>
<div class="block">Request the creation of new buffer, a BodyContent on which to evaluate the body of this tag.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/BodyTag.html#EVAL_BODY_TAG">EVAL_BODY_TAG</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of Java JSP API 1.2, use BodyTag.EVAL_BODY_BUFFERED or IterationTag.EVAL_BODY_AGAIN.</span></div>
</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.servlet.jsp.tagext.IterationTag">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;javax.servlet.jsp.tagext.<a href="../../../../javax/servlet/jsp/tagext/IterationTag.html" title="interface in javax.servlet.jsp.tagext">IterationTag</a></h3>
<code><a href="../../../../javax/servlet/jsp/tagext/IterationTag.html#EVAL_BODY_AGAIN">EVAL_BODY_AGAIN</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.servlet.jsp.tagext.Tag">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;javax.servlet.jsp.tagext.<a href="../../../../javax/servlet/jsp/tagext/Tag.html" title="interface in javax.servlet.jsp.tagext">Tag</a></h3>
<code><a href="../../../../javax/servlet/jsp/tagext/Tag.html#EVAL_BODY_INCLUDE">EVAL_BODY_INCLUDE</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#EVAL_PAGE">EVAL_PAGE</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#SKIP_BODY">SKIP_BODY</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#SKIP_PAGE">SKIP_PAGE</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/BodyTag.html#doInitBody--">doInitBody</a></span>()</code>
<div class="block">Prepare for evaluation of the body.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/BodyTag.html#setBodyContent-javax.servlet.jsp.tagext.BodyContent-">setBodyContent</a></span>(<a href="../../../../javax/servlet/jsp/tagext/BodyContent.html" title="class in javax.servlet.jsp.tagext">BodyContent</a>&nbsp;b)</code>
<div class="block">Set the bodyContent property.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.jsp.tagext.IterationTag">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;javax.servlet.jsp.tagext.<a href="../../../../javax/servlet/jsp/tagext/IterationTag.html" title="interface in javax.servlet.jsp.tagext">IterationTag</a></h3>
<code><a href="../../../../javax/servlet/jsp/tagext/IterationTag.html#doAfterBody--">doAfterBody</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.jsp.tagext.Tag">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;javax.servlet.jsp.tagext.<a href="../../../../javax/servlet/jsp/tagext/Tag.html" title="interface in javax.servlet.jsp.tagext">Tag</a></h3>
<code><a href="../../../../javax/servlet/jsp/tagext/Tag.html#doEndTag--">doEndTag</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#doStartTag--">doStartTag</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#getParent--">getParent</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#release--">release</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#setPageContext-javax.servlet.jsp.PageContext-">setPageContext</a>, <a href="../../../../javax/servlet/jsp/tagext/Tag.html#setParent-javax.servlet.jsp.tagext.Tag-">setParent</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="EVAL_BODY_TAG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVAL_BODY_TAG</h4>
<pre>static final&nbsp;int EVAL_BODY_TAG</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of Java JSP API 1.2, use BodyTag.EVAL_BODY_BUFFERED or IterationTag.EVAL_BODY_AGAIN.</span></div>
<div class="block">Deprecated constant that has the same value as EVAL_BODY_BUFFERED and EVAL_BODY_AGAIN. This name has been marked
as deprecated to encourage the use of the two different terms, which are much more descriptive.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_TAG">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVAL_BODY_BUFFERED">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EVAL_BODY_BUFFERED</h4>
<pre>static final&nbsp;int EVAL_BODY_BUFFERED</pre>
<div class="block">Request the creation of new buffer, a BodyContent on which to evaluate the body of this tag.
Returned from doStartTag when it implements BodyTag. This is an illegal return value for doStartTag when the
class does not implement BodyTag.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_BUFFERED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setBodyContent-javax.servlet.jsp.tagext.BodyContent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBodyContent</h4>
<pre>void&nbsp;setBodyContent(<a href="../../../../javax/servlet/jsp/tagext/BodyContent.html" title="class in javax.servlet.jsp.tagext">BodyContent</a>&nbsp;b)</pre>
<div class="block">Set the bodyContent property. This method is invoked by the JSP page implementation object at most once per
action invocation. This method will be invoked before doInitBody. This method will not be invoked for empty tags
or for non-empty tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE.
<p>
When setBodyContent is invoked, the value of the implicit object out has already been changed in the pageContext
object. The BodyContent object passed will have not data on it but may have been reused (and cleared) from some
previous invocation.
<p>
The BodyContent object is available and with the appropriate content until after the invocation of the doEndTag
method, at which case it may be reused.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>b</code> - the BodyContent</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/BodyTag.html#doInitBody--"><code>doInitBody()</code></a>,
<a href="../../../../javax/servlet/jsp/tagext/IterationTag.html#doAfterBody--"><code>IterationTag.doAfterBody()</code></a></dd>
</dl>
</li>
</ul>
<a name="doInitBody--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>doInitBody</h4>
<pre>void&nbsp;doInitBody()
throws <a href="../../../../javax/servlet/jsp/JspException.html" title="class in javax.servlet.jsp">JspException</a></pre>
<div class="block">Prepare for evaluation of the body. This method is invoked by the JSP page implementation object after
setBodyContent and before the first time the body is to be evaluated. This method will not be invoked for empty
tags or for non-empty tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE.
<p>
The JSP container will resynchronize the values of any AT_BEGIN and NESTED variables (defined by the associated
TagExtraInfo or TLD) after the invocation of doInitBody().</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspException.html" title="class in javax.servlet.jsp">JspException</a></code> - if an error occurred while processing this tag</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/IterationTag.html#doAfterBody--"><code>IterationTag.doAfterBody()</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../javax/servlet/jsp/tagext/BodyContent.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/servlet/jsp/tagext/BodyTagSupport.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/servlet/jsp/tagext/BodyTag.html" target="_top">Frames</a></li>
<li><a href="BodyTag.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>