blob: 522143826f1d7458701752e409dd324e68dc6e4b [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>ScopedAttributeELResolver</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="ScopedAttributeELResolver";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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="../../../../jakarta/servlet/jsp/el/ImplicitObjectELResolver.html" title="class in jakarta.servlet.jsp.el"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../jakarta/servlet/jsp/el/VariableResolver.html" title="interface in jakarta.servlet.jsp.el"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?jakarta/servlet/jsp/el/ScopedAttributeELResolver.html" target="_top">Frames</a></li>
<li><a href="ScopedAttributeELResolver.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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">jakarta.servlet.jsp.el</div>
<h2 title="Class ScopedAttributeELResolver" class="title">Class ScopedAttributeELResolver</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>ELResolver</li>
<li>
<ul class="inheritance">
<li>jakarta.servlet.jsp.el.ScopedAttributeELResolver</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">ScopedAttributeELResolver</span>
extends ELResolver</pre>
<div class="block">Defines variable resolution behavior for scoped attributes.
<p>
This resolver handles all variable resolutions (where <code>base</code> is <code>null</code>. It searches
<code>PageContext.findAttribute()</code> for a matching attribute. If not found, it will return <code>null</code>, or
in the case of <code>setValue</code> it will create a new attribute in the page scope with the given name.
</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JSP 2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>jakarta.el.ELResolver</code></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#ScopedAttributeELResolver--">ScopedAttributeELResolver</a></span>()</code>&nbsp;</td>
</tr>
</table>
</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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>java.lang.Class&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#getCommonPropertyType-ELContext-java.lang.Object-">getCommonPropertyType</a></span>(ELContext&nbsp;context,
java.lang.Object&nbsp;base)</code>
<div class="block">If the base object is <code>null</code>, returns <code>String.class</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.Iterator&lt;java.beans.FeatureDescriptor&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#getFeatureDescriptors-ELContext-java.lang.Object-">getFeatureDescriptors</a></span>(ELContext&nbsp;context,
java.lang.Object&nbsp;base)</code>
<div class="block">If the base object is <code>null</code>, returns an <code>Iterator</code> containing
<code>FeatureDescriptor</code> objects with information about each scoped attribute resolved by this resolver.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Class&lt;java.lang.Object&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#getType-ELContext-java.lang.Object-java.lang.Object-">getType</a></span>(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property)</code>
<div class="block">If the base object is <code>null</code>, returns <code>Object.class</code> to indicate that any type is valid to
set for a scoped attribute.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#getValue-ELContext-java.lang.Object-java.lang.Object-">getValue</a></span>(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property)</code>
<div class="block">If the base object is <code>null</code>, searches the page, request, session and application scopes for an
attribute with the given name and returns it, or <code>null</code> if no attribute exists with the current name.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#isReadOnly-ELContext-java.lang.Object-java.lang.Object-">isReadOnly</a></span>(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property)</code>
<div class="block">If the base object is <code>null</code>, returns <code>false</code> to indicate that scoped attributes are never
read-only.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../jakarta/servlet/jsp/el/ScopedAttributeELResolver.html#setValue-ELContext-java.lang.Object-java.lang.Object-java.lang.Object-">setValue</a></span>(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property,
java.lang.Object&nbsp;val)</code>
<div class="block">If the base object is <code>null</code>, sets an existing scoped attribute to the new value, or creates a new
scoped attribute if one does not exist by this name.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ScopedAttributeELResolver--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ScopedAttributeELResolver</h4>
<pre>public&nbsp;ScopedAttributeELResolver()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getValue-ELContext-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValue</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getValue(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property)</pre>
<div class="block">If the base object is <code>null</code>, searches the page, request, session and application scopes for an
attribute with the given name and returns it, or <code>null</code> if no attribute exists with the current name.
<p>
The <code>propertyResolved</code> property of the <code>ELContext</code> object must be set to <code>true</code>
by this resolver before returning if base is <code>null</code>. If this property is not <code>true</code> after
this method is called, the caller should ignore the return value.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context of this evaluation.</dd>
<dd><code>base</code> - Only <code>null</code> is handled by this resolver. Other values will result in an immediate
return.</dd>
<dd><code>property</code> - The name of the scoped attribute to resolve.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If the <code>propertyResolved</code> property of <code>ELContext</code> was set to <code>true</code>,
then the scoped attribute; otherwise undefined.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if context is <code>null</code></dd>
<dd><code><a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></code> - if an exception was thrown while performing the property or variable resolution. The
thrown exception must be included as the cause property of this exception, if
available.</dd>
</dl>
</li>
</ul>
<a name="getType-ELContext-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
<pre>public&nbsp;java.lang.Class&lt;java.lang.Object&gt;&nbsp;getType(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property)</pre>
<div class="block">If the base object is <code>null</code>, returns <code>Object.class</code> to indicate that any type is valid to
set for a scoped attribute.
<p>
The <code>propertyResolved</code> property of the <code>ELContext</code> object must be set to <code>true</code>
by this resolver before returning if base is <code>null</code>. If this property is not <code>true</code> after
this method is called, the caller should ignore the return value.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context of this evaluation.</dd>
<dd><code>base</code> - Only <code>null</code> is handled by this resolver. Other values will result in an immediate
return.</dd>
<dd><code>property</code> - The name of the scoped attribute to resolve.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If the <code>propertyResolved</code> property of <code>ELContext</code> was set to <code>true</code>,
then <code>Object.class</code>; otherwise undefined.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if context is <code>null</code></dd>
<dd><code><a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></code> - if an exception was thrown while performing the property or variable resolution. The
thrown exception must be included as the cause property of this exception, if
available.</dd>
</dl>
</li>
</ul>
<a name="setValue-ELContext-java.lang.Object-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValue</h4>
<pre>public&nbsp;void&nbsp;setValue(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property,
java.lang.Object&nbsp;val)</pre>
<div class="block">If the base object is <code>null</code>, sets an existing scoped attribute to the new value, or creates a new
scoped attribute if one does not exist by this name.
<p>
If the provided attribute name matches the key of an attribute in page scope, request scope, session scope, or
application scope, the corresponding attribute value will be replaced by the provided value. Otherwise, a new
page scope attribute will be created with the given name and value.
</p>
<p>
The <code>propertyResolved</code> property of the <code>ELContext</code> object must be set to <code>true</code>
by this resolver before returning if base is <code>null</code>. If this property is not <code>true</code> after
this method is called, the caller should ignore the return value.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context of this evaluation.</dd>
<dd><code>base</code> - Only <code>null</code> is handled by this resolver. Other values will result in an immediate
return.</dd>
<dd><code>property</code> - The name of the scoped attribute to set.</dd>
<dd><code>val</code> - The value for the scoped attribute.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if context is <code>null</code>.</dd>
<dd><code><a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></code> - if an exception was thrown while performing the property or variable resolution. The
thrown exception must be included as the cause property of this exception, if
available.</dd>
</dl>
</li>
</ul>
<a name="isReadOnly-ELContext-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReadOnly</h4>
<pre>public&nbsp;boolean&nbsp;isReadOnly(ELContext&nbsp;context,
java.lang.Object&nbsp;base,
java.lang.Object&nbsp;property)</pre>
<div class="block">If the base object is <code>null</code>, returns <code>false</code> to indicate that scoped attributes are never
read-only.
<p>
The <code>propertyResolved</code> property of the <code>ELContext</code> object must be set to <code>true</code>
by this resolver before returning if base is <code>null</code>. If this property is not <code>true</code> after
this method is called, the caller should ignore the return value.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context of this evaluation.</dd>
<dd><code>base</code> - Only <code>null</code> is handled by this resolver. Other values will result in an immediate
return.</dd>
<dd><code>property</code> - The name of the scoped attribute.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If the <code>propertyResolved</code> property of <code>ELContext</code> was set to <code>true</code>,
then <code>false</code>; otherwise undefined.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if context is <code>null</code>.</dd>
<dd><code><a href="../../../../jakarta/servlet/jsp/el/ELException.html" title="class in jakarta.servlet.jsp.el">ELException</a></code> - if an exception was thrown while performing the property or variable resolution. The
thrown exception must be included as the cause property of this exception, if
available.</dd>
</dl>
</li>
</ul>
<a name="getFeatureDescriptors-ELContext-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFeatureDescriptors</h4>
<pre>public&nbsp;java.util.Iterator&lt;java.beans.FeatureDescriptor&gt;&nbsp;getFeatureDescriptors(ELContext&nbsp;context,
java.lang.Object&nbsp;base)</pre>
<div class="block">If the base object is <code>null</code>, returns an <code>Iterator</code> containing
<code>FeatureDescriptor</code> objects with information about each scoped attribute resolved by this resolver.
Otherwise, returns <code>null</code>.
<p>
The <code>Iterator</code> returned must contain one instance of <code>FeatureDescriptor</code> for each
scoped attribute found in any scope. Each info object contains information about a single scoped attribute, and
is initialized as follows:
</p>
<dl>
<dt>displayName</dt><dd>- The name of the scoped attribute.</dd>
<dt>name</dt><dd>- Same as displayName property.</dd>
<dt>shortDescription</dt><dd>- A suitable description for the scoped attribute. Should include the attribute's current
scope (page, request, session, application). Will vary by implementation.</dd>
<dt>expert</dt><dd>- <code>false</code></dd>
<dt>hidden</dt><dd>- <code>false</code></dd>
<dt>preferred</dt><dd>- <code>true</code></dd>
</dl>
In addition, the following named attributes must be set in the returned <code>FeatureDescriptor</code>s:
<dl>
<dt><code>ELResolver#TYPE</code></dt><dd>- The current runtime type of the scoped attribute.</dd>
<dt><code>ELResolver#RESOLVABLE_AT_DESIGN_TIME</code></dt><dd>- <code>true</code>.</dd>
</dl></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context of this evaluation.</dd>
<dd><code>base</code> - Only <code>null</code> is handled by this resolver. Other values will result in a
<code>null</code> return value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An <code>Iterator</code> containing one <code>FeatureDescriptor</code> object for each scoped attribute,
or <code>null</code> if <code>base</code> is not <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="getCommonPropertyType-ELContext-java.lang.Object-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getCommonPropertyType</h4>
<pre>public&nbsp;java.lang.Class&lt;java.lang.String&gt;&nbsp;getCommonPropertyType(ELContext&nbsp;context,
java.lang.Object&nbsp;base)</pre>
<div class="block">If the base object is <code>null</code>, returns <code>String.class</code>. Otherwise, returns <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context of this evaluation.</dd>
<dd><code>base</code> - Only <code>null</code> is handled by this resolver. Other values will result in a
<code>null</code> return value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>null</code> if base is not <code>null</code>; otherwise <code>String.class</code>.</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="../../../../jakarta/servlet/jsp/el/ImplicitObjectELResolver.html" title="class in jakarta.servlet.jsp.el"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../jakarta/servlet/jsp/el/VariableResolver.html" title="interface in jakarta.servlet.jsp.el"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?jakarta/servlet/jsp/el/ScopedAttributeELResolver.html" target="_top">Frames</a></li>
<li><a href="ScopedAttributeELResolver.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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>