blob: 8fce84417e2d9fc4d89b5b2ea225675cf3fc56b0 [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>SimpleTag</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="SimpleTag";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":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/PageData.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/servlet/jsp/tagext/SimpleTagSupport.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/SimpleTag.html" target="_top">Frames</a></li>
<li><a href="SimpleTag.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>Field&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>Field&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 SimpleTag" class="title">Interface SimpleTag</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/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/SimpleTagSupport.html" title="class in javax.servlet.jsp.tagext">SimpleTagSupport</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">SimpleTag</span>
extends <a href="../../../../javax/servlet/jsp/tagext/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a></pre>
<div class="block">Interface for defining Simple Tag Handlers.
<p>
Simple Tag Handlers differ from Classic Tag Handlers in that instead of supporting <code>doStartTag()</code> and
<code>doEndTag()</code>, the <code>SimpleTag</code> interface provides a simple <code>doTag()</code> method, which is
called once and only once for any given tag invocation. All tag logic, iteration, body evaluations, etc. are to be
performed in this single method. Thus, simple tag handlers have the equivalent power of <code>BodyTag</code>, but
with a much simpler lifecycle and interface.
</p>
<p>
To support body content, the <code>setJspBody()</code> method is provided. The container invokes the
<code>setJspBody()</code> method with a <code>JspFragment</code> object encapsulating the body of the tag. The tag
handler implementation can call <code>invoke()</code> on that fragment to evaluate the body as many times as it
needs.
</p>
<p>
A SimpleTag handler must have a public no-args constructor. Most SimpleTag handlers should extend SimpleTagSupport.
</p>
<p>
<b>Lifecycle</b>
</p>
<p>
The following is a non-normative, brief overview of the SimpleTag lifecycle. Refer to the JSP Specification for
details.
</p>
<ol>
<li>A new tag handler instance is created each time by the container by calling the provided zero-args constructor.
Unlike classic tag handlers, simple tag handlers are never cached and reused by the JSP container.</li>
<li>The <code>setJspContext()</code> and <code>setParent()</code> methods are called by the container. The
<code>setParent()</code> method is only called if the element is nested within another tag invocation.</li>
<li>The setters for each attribute defined for this tag are called by the container.</li>
<li>If a body exists, the <code>setJspBody()</code> method is called by the container to set the body of this tag, as
a <code>JspFragment</code>. If the action element is empty in the page, this method is not called at all.</li>
<li>The <code>doTag()</code> method is called by the container. All tag logic, iteration, body evaluations, etc.
occur in this method.</li>
<li>The <code>doTag()</code> method returns and all variables are synchronized.</li>
</ol></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JSP 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/SimpleTagSupport.html" title="class in javax.servlet.jsp.tagext"><code>SimpleTagSupport</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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/SimpleTag.html#doTag--">doTag</a></span>()</code>
<div class="block">Called by the container to invoke this tag.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/tagext/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/SimpleTag.html#getParent--">getParent</a></span>()</code>
<div class="block">Returns the parent of this tag, for collaboration purposes.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/SimpleTag.html#setJspBody-javax.servlet.jsp.tagext.JspFragment-">setJspBody</a></span>(<a href="../../../../javax/servlet/jsp/tagext/JspFragment.html" title="class in javax.servlet.jsp.tagext">JspFragment</a>&nbsp;jspBody)</code>
<div class="block">Provides the body of this tag as a JspFragment object, able to be invoked zero or more times by the tag handler.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/SimpleTag.html#setJspContext-javax.servlet.jsp.JspContext-">setJspContext</a></span>(<a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a>&nbsp;pc)</code>
<div class="block">Called by the container to provide this tag handler with the <code>JspContext</code> for this invocation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/servlet/jsp/tagext/SimpleTag.html#setParent-javax.servlet.jsp.tagext.JspTag-">setParent</a></span>(<a href="../../../../javax/servlet/jsp/tagext/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a>&nbsp;parent)</code>
<div class="block">Sets the parent of this tag, for collaboration purposes.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="doTag--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doTag</h4>
<pre>void&nbsp;doTag()
throws <a href="../../../../javax/servlet/jsp/JspException.html" title="class in javax.servlet.jsp">JspException</a>,
java.io.IOException</pre>
<div class="block">Called by the container to invoke this tag. The implementation of this method is provided by the tag library
developer, and handles all tag processing, body iteration, etc.
<p>
The JSP container will resynchronize any AT_BEGIN and AT_END variables (defined by the associated tag file,
TagExtraInfo, or TLD) after the invocation of doTag().</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>
<dd><code><a href="../../../../javax/servlet/jsp/SkipPageException.html" title="class in javax.servlet.jsp">SkipPageException</a></code> - If the page that (either directly or indirectly) invoked this tag is
to cease evaluation. A Simple Tag Handler generated from a tag file must throw this exception if an
invoked Classic Tag Handler returned SKIP_PAGE or if an invoked Simple Tag Handler threw
SkipPageException or if an invoked Jsp Fragment threw a SkipPageException.</dd>
<dd><code>java.io.IOException</code> - If there was an error writing to the output stream.</dd>
</dl>
</li>
</ul>
<a name="setParent-javax.servlet.jsp.tagext.JspTag-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParent</h4>
<pre>void&nbsp;setParent(<a href="../../../../javax/servlet/jsp/tagext/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a>&nbsp;parent)</pre>
<div class="block">Sets the parent of this tag, for collaboration purposes.
<p>
The container invokes this method only if this tag invocation is nested within another tag invocation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - the tag that encloses this tag</dd>
</dl>
</li>
</ul>
<a name="getParent--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParent</h4>
<pre><a href="../../../../javax/servlet/jsp/tagext/JspTag.html" title="interface in javax.servlet.jsp.tagext">JspTag</a>&nbsp;getParent()</pre>
<div class="block">Returns the parent of this tag, for collaboration purposes.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parent of this tag</dd>
</dl>
</li>
</ul>
<a name="setJspContext-javax.servlet.jsp.JspContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJspContext</h4>
<pre>void&nbsp;setJspContext(<a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a>&nbsp;pc)</pre>
<div class="block">Called by the container to provide this tag handler with the <code>JspContext</code> for this invocation. An
implementation should save this value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pc</code> - the page context for this invocation</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/servlet/jsp/tagext/Tag.html#setPageContext-javax.servlet.jsp.PageContext-"><code>Tag.setPageContext(javax.servlet.jsp.PageContext)</code></a></dd>
</dl>
</li>
</ul>
<a name="setJspBody-javax.servlet.jsp.tagext.JspFragment-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setJspBody</h4>
<pre>void&nbsp;setJspBody(<a href="../../../../javax/servlet/jsp/tagext/JspFragment.html" title="class in javax.servlet.jsp.tagext">JspFragment</a>&nbsp;jspBody)</pre>
<div class="block">Provides the body of this tag as a JspFragment object, able to be invoked zero or more times by the tag handler.
<p>
This method is invoked by the JSP page implementation object prior to <code>doTag()</code>. If the action element
is empty in the page, this method is not called at all.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jspBody</code> - The fragment encapsulating the body of this tag.</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/PageData.html" title="class in javax.servlet.jsp.tagext"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/servlet/jsp/tagext/SimpleTagSupport.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/SimpleTag.html" target="_top">Frames</a></li>
<li><a href="SimpleTag.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>Field&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>Field&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>