blob: 61692c4642d5a4047587f97b7c0fedaae186a4d3 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 2009, 2010 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
version="2.0">
<description>
The core JavaServer Faces custom actions that are independent of
any particular RenderKit.
</description>
<namespace>http://java.sun.com/jsf/core</namespace>
<tag>
<description>
&lt;p&gt;Register an ActionListener instance on the
UIComponent associated with the closest parent UIComponent
custom action.&lt;/p&gt;
</description>
<tag-name>actionListener</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ActionListenerHandler</handler-class>
<attribute>
<description>
Fully qualified Java class name of an ActionListener to be
created and registered.
</description>
<name>type</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Value binding expression that evaluates to an object that
implements javax.faces.event.ActionListener.
</description>
<name>binding</name>
<required>false</required>
<type>javax.faces.event.ActionListener</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Add an attribute to the UIComponent associated with the closest
parent UIComponent custom action.
</description>
<tag-name>attribute</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.AttributeHandler</handler-class>
<attribute>
<description>
The name of the component attribute to be set.
</description>
<name>name</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
The value of the component attribute to be set.
</description>
<name>value</name>
<type>java.lang.Object</type>
</attribute>
</tag>
<tag>
<description>
Register a DateTimeConverter instance on the UIComponent associated
with the closest parent UIComponent custom action.
</description>
<tag-name>convertDateTime</tag-name>
<converter>
<converter-id>javax.faces.DateTime</converter-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ConvertDateTimeHandler</handler-class>
</converter>
<attribute>
<description>
Predefined formatting style which determines how the date
component of a date string is to be formatted and parsed.
Applied only if type is "date" or "both". Valid values
are "default", "short", "medium", "long", and "full".
Default value is "default".
</description>
<name>dateStyle</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Locale whose predefined styles for dates and times are used
during formatting or parsing. If not specified, the Locale
returned by FacesContext.getViewRoot().getLocale() will be used.
Value must be either a VB expression that evaluates to a
java.util.Locale instance, or a String that is valid to pass as
the first argument to the constructor java.util.Locale(String
language, String country). The empty string is passed as the
second argument.
</description>
<name>locale</name>
<required>false</required>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
Custom formatting pattern which determines how the
date/time string should be formatted and parsed.
</description>
<name>pattern</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Predefined formatting style which determines how the
time component of a date string is to be formatted and
parsed. Applied only if type is "time" or "both".
Valid values are "default", "short", "medium", "long",
and "full". Default value is "default".
</description>
<name>timeStyle</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Time zone in which to interpret any time information in the date
String. Value must be either a VB expression that evaluates to
a java.util.TimeZone instance, or a String that is a timezone ID
as described in the javadocs for
java.util.TimeZone.getTimeZone().
</description>
<name>timeZone</name>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
Specifies what contents the string value will be
formatted to include, or parsed expecting. Valid
values are "date", "time", and "both". Default
value is "date".
</description>
<name>type</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
javax.faces.convert.DateTimeConverter.
</description>
<name>binding</name>
<type>javax.faces.convert.DateTimeConverter</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Register a NumberConverter instance on the UIComponent associated
with the closest parent UIComponent custom action.
</description>
<tag-name>convertNumber</tag-name>
<converter>
<converter-id>javax.faces.Number</converter-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ConvertNumberHandler</handler-class>
</converter>
<attribute>
<description>
ISO 4217 currency code, applied only when
formatting currencies.
</description>
<name>currencyCode</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Currency symbol, applied only when formatting
currencies.
</description>
<name>currencySymbol</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Flag specifying whether formatted output will
contain grouping separators. Expressions must
evaluate to a boolean. Default value
is true.
</description>
<name>groupingUsed</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Flag specifying whether only the integer part
of the value will be formatted and parsed.
Expressions must evaluate to a boolean.
Default value is false.
</description>
<name>integerOnly</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>&lt;p&gt;
&lt;span class="changed_modified_2_0"&gt;Locale&lt;/span&gt;
whose
predefined styles for numbers are used during formatting
and parsing. If not specified, the Locale returned by
FacesContext.getViewRoot().getLocale() will be used.
Expressions must evaluate to a java.util.Locale &lt;span
class="changed_modified_2_0"&gt;or a String that is valid to
pass as the first argument to the constructor
java.util.Locale(String language, String country). The
empty string is passed as the second argument.&lt;/span&gt;
&lt;/p&gt;</description>
<name>locale</name>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
Maximum number of digits that will be formatted
in the fractional portion of the output. Expressions
must evaluate to an int.
</description>
<name>maxFractionDigits</name>
<type>java.lang.Integer</type>
</attribute>
<attribute>
<description>
Maximum number of digits that will be formatted
in the integer portion of the output. Expressions
must evaluate to an int.
</description>
<name>maxIntegerDigits</name>
<type>java.lang.Integer</type>
</attribute>
<attribute>
<description>
Minimum number of digits that will be formatted
in the fractional portion of the output. Expressions
must evaluate to an int.
</description>
<name>minFractionDigits</name>
<type>java.lang.Integer</type>
</attribute>
<attribute>
<description>
Minimum number of digits that will be formatted
in the integer portion of the output. Expressions
must evaluate to an int.
</description>
<name>minIntegerDigits</name>
<type>java.lang.Integer</type>
</attribute>
<attribute>
<description>
Custom formatting pattern which determins how the
number string should be formatted and parsed.
</description>
<name>pattern</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Specifies how the number string will be formatted
and parsed. Valid values are "number", "currency",
and "percent". Default value is "number".
</description>
<name>type</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
javax.faces.convert.NumberConverter.
</description>
<name>binding</name>
<type>javax.faces.convert.NumberConverter</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Register a named Converter instance on the UIComponent
associated with the closest parent UIComponent custom action.
</description>
<tag-name>converter</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ConvertDelegateHandler</handler-class>
<attribute>
<description>
Converter identifier of the Converter instance to be
created and registered.
</description>
<name>converterId</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an object that
implements javax.faces.convert.Converter.
</description>
<name>binding</name>
<type>javax.faces.convert.Converter</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
&lt;p class="changed_added_2_0"&gt;Register an AjaxBehavior instance
on one or more
UIComponents implementing the ClientBehaviorHolder interface. This
tag
may be nested witin a single component (enabling Ajax for a single
component),
or it may be "wrapped" around multiple components (enabling Ajax for
many components).&lt;/p&gt;
</description>
<tag-name>ajax</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.AjaxHandler</handler-class>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A value of "true" indicates
the
AjaxBehavior should not be rendered. A value of "false"
indicates
the AjaxBehavior should be rendered. "false" is the default.&lt;/p&gt;
</description>
<name>disabled</name>
<required>false</required>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A String identifying the type
of event
the Ajax action will apply to. If specified, it must be one of
the
events supported by the component the Ajax behavior is being
applied to.
For HTML components this would be the set of supported DOM
events for the
component, plus "action" for Faces ActionSource components and
"valueChange"
for Faces EditableValueHolder components. If not specified, the
default
event is determined for the component. The DOM event name is the
actual DOM
event name (for example: "click") as opposed to (for example:
"onclick").&lt;/p&gt;
</description>
<name>event</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;Evaluates to Collection&lt;String&gt;.
Identifiers of
components that will participate in the "execute" portion of the
Request
Processing Lifecycle. If a literal is specified the identifiers
must be space
delimited. Any of the keywords "@this", "@form", "@all", "@none"
may be specified
in the identifier list.&lt;/p&gt;
</description>
<name>execute</name>
<required>false</required>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If "true" behavior events
generated from this behavior
are broadcast during Apply Request Values phase. Otherwise, the
events will be
broadcast during Invoke Aplications phase&lt;/p&gt;
</description>
<name>immediate</name>
<required>false</required>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;Method expression referencing
a method
that will be called when an AjaxBehaviorEvent has been
broadcast for the listener.&lt;/p&gt;
</description>
<name>listener</name>
<required>false</required>
<method-signature>public void
processAjaxBehavior(javax.faces.event.AjaxBehaviorEvent event)
throws javax.faces.event.AbortProcessingException
</method-signature>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;The name of the JavaScript
function that will handle UI events.&lt;/p&gt;
</description>
<name>onevent</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;The name of the JavaScript
function that will handle errors.&lt;/p&gt;
</description>
<name>onerror</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;Evaluates to Collection&lt;String&gt;.
Identifiers of
components that will participate in the "render" portion of the
Request
Processing Lifecycle. If a literal is specified the identifiers
must be space
delimited. Any of the keywords "@this", "@form", "@all", "@none"
may be specified
in the identifier list.&lt;/p&gt;
</description>
<name>render</name>
<required>false</required>
<type>java.lang.Object</type>
</attribute>
</tag>
<tag>
<description>
&lt;p class="changed_added_2_0"&gt;Allow JSF page authors to
install &lt;code&gt;ComponentSystemEventListener&lt;/code&gt;
instances
on a component in a page.&lt;/p&gt;
&lt;div class="changed_added_2_0"&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
</description>
<tag-name>event</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.EventHandler</handler-class>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;Name of the event for which
to install a listener. The following table lists the
valid values for this attribute, and the corresponding
event type for which the listener action is
registered.&lt;/p&gt;
&lt;table border="1"&gt;
&lt;tr&gt;
&lt;th&gt;value for "&lt;code&gt;type&lt;/code&gt;" tag
attribute&lt;/th&gt;
&lt;th&gt;Type of event sent to listener method
&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;preRenderComponent
&lt;/td&gt;
&lt;td&gt;javax.faces.event.PreRenderComponentEvent
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PostAddToView
&lt;/td&gt;
&lt;td&gt;javax.faces.event.PostAddToViewEvent
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;preValidate
&lt;/td&gt;
&lt;td&gt;javax.faces.event.PreValidateEvent
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;postValidate
&lt;/td&gt;
&lt;td&gt;javax.faces.event.PostValidateEvent
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;div class="changed_added_2_0"&gt;
&lt;p&gt;In addition to these values, the fully qualified class
name of any
java class that extends
&lt;code&gt;javax.faces.event.ComponentSystemEvent&lt;/code&gt;
may be used as the
value of the "type" attribute.&lt;/p&gt;
&lt;p&gt;Also, the &lt;code&gt;@javax.faces.event.NamedEvent&lt;/code&gt;
annotation may
be attached to any java class that extends
&lt;code&gt;javax.faces.event.ComponentSystemEvent&lt;/code&gt;.
This enables that
event to be referenced from this attribute, as descibed in the
javadocs
for &lt;code&gt;@NamedEvent&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
</description>
<name>type</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
MethodExpression pointing to a method expression of
that will be called when the listener's processEvent
method would have been called.
</description>
<name>listener</name>
<required>true</required>
<method-signature>public void
listener(javax.faces.event.ComponentSystemEvent event) throws
javax.faces.event.AbortProcessingException
</method-signature>
</attribute>
</tag>
<tag>
<description>
&lt;p&gt;Register a named facet on the UIComponent associated with
the closest parent UIComponent custom action.&lt;/p&gt;
</description>
<tag-name>facet</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.FacetHandler</handler-class>
<attribute>
<description>
Name of the facet to be created.
</description>
<name>name</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
&lt;p class="changed_added_2_0"&gt;Declare the metadata facet for
this view. This must be a child of the
&lt;code&gt;&amp;lt;f:view&amp;gt;&lt;/code&gt;. This tag must
reside within the
top level XHTML file for the given viewId, not in a
template. The implementation must insure that the direct
child of the facet is a &lt;code&gt;UIPanel&lt;/code&gt;, even if
there
is only one child of the facet. The implementation must set
the id of the &lt;code&gt;UIPanel&lt;/code&gt; to be the value of
the
&lt;code&gt;UIViewRoot.METADATA_FACET_NAME&lt;/code&gt; symbolic
constant.&lt;/p&gt;
&lt;div class="changed_added_2_0"&gt;
&lt;p&gt;The implementation must allow templating for this element
according
to the following pattern.&lt;/p&gt;
&lt;p&gt;viewId XHTML page, page01.xhtml&lt;/p&gt;
&lt;/div&gt;
&lt;div class="html4strict" style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li
class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;ui:composition
template=&lt;span class="st0"&gt;&amp;quot;template.xhtml&amp;quot;&lt;/span&gt;&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&lt;span class="sc2"&gt;&amp;lt;ui:define &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
class="st0"&gt;&amp;quot;metadata&amp;quot;&lt;/span&gt;&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;f:metadata&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;f:viewParam
&lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;/&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/f:metadata&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:define&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&lt;span class="sc2"&gt;&amp;lt;ui:define &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
class="st0"&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;&lt;/span&gt;The
big news stories of the day&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:define&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:composition&amp;gt;&lt;/span&gt;
&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class="changed_added_2_0"&gt;
&lt;p&gt;Note line 4. The page author must ensure that the
&lt;code&gt;&amp;lt;f:metadata&amp;gt;&lt;/code&gt; element does not
appear on a template or
included page. It must reside on the root page that corresponds to
the
viewId.&lt;/p&gt;
&lt;p&gt;The template page, template.xhtml&lt;/p&gt;
&lt;/div&gt;
&lt;div class="html4strict" style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li
class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;html&lt;/span&gt; xmlns=&lt;span class="st0"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; xmlns:ui=&lt;span class="st0"&gt;&amp;quot;http://java.sun.com/jsf/facelets&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; xmlns:f=&lt;span class="st0"&gt;&amp;quot;http://java.sun.com/jsf/core&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; xml:&lt;span class="kw3"&gt;lang&lt;/span&gt;=&lt;span
class="st0"&gt;&amp;quot;en&amp;quot;&lt;/span&gt; &lt;span
class="kw3"&gt;lang&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;f:view&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;ui:insert &lt;span
class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;metadata&amp;quot;&lt;/span&gt;/&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;div&lt;/span&gt;
&lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;ui:insert &lt;span
class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;content&amp;quot;&lt;/span&gt;/&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;&lt;/span&gt;/f:view&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&lt;span
class="kw2"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The page author is not &lt;em&gt;required&lt;/em&gt; to use
templating, but if
they do, it must be done as shown above, (or with
&lt;code&gt;&amp;lt;ui:include&amp;gt;&lt;/code&gt; in a similar
manner).&lt;/p&gt;
&lt;/div&gt;
</description>
<tag-name>metadata</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.MetadataHandler</handler-class>
</tag>
<tag>
<description>
Load a resource bundle localized for the Locale of the current
view, and expose it as a java.util.Map in the request attributes
of the current request under the key specified by the value of the
"var" attribute of this tag. The Map must behave such that if a
get() call is made for a key that does not exist in the Map, the
literal string ???KEY??? is returned from the Map, where KEY is
the key being looked up in the Map, instead of a
MissingResourceException being thrown. If the ResourceBundle does
not exist, a JspException must be thrown.
</description>
<tag-name>loadBundle</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.LoadBundleHandler</handler-class>
<attribute>
<description>
Base name of the resource bundle
to be loaded.
</description>
<name>basename</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Name of a request scope attribute under which
the resource bundle will be exposed as a Map.
</description>
<name>var</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Add a child UIParameter component to the UIComponent
associated with the closest parent UIComponent custom
action.
</description>
<tag-name>param</tag-name>
<component>
<component-type>javax.faces.Parameter</component-type>
<renderer-type/>
</component>
<attribute>
<description>
ValueExpression to a backing bean
property bound to the component instance for
the UIComponent created by this custom action.
</description>
<name>binding</name>
<type>javax.faces.component.UIComponent</type>
</attribute>
<attribute>
<description>
Component identifier of the UIParameter component
to be created.
</description>
<name>id</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Name of the parameter to be created.
</description>
<name>name</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Value of the parameter to be set.
</description>
<name>value</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
RELEASE_PENDING
- Also update spec for bookmarkable URL (don't forget the two
sources for include-view-params).
- convey precendence feature using non-normative language
vs algorithmic
Flag enabling or disabling the inclusion of the parameter
</description>
<name>disable</name>
<type>boolean</type>
</attribute>
</tag>
<tag>
<description>
&lt;p class="changed_added_2_0"&gt;Used inside of the metada facet
of a view, this tag causes a &lt;a target="_"
href="../../../javadocs/javax/faces/component/UIViewParameter.html"&gt;UIViewParameter&lt;/a&gt;
to be attached as metadata for the current view. Because
&lt;code&gt;UIViewParameter&lt;/code&gt; extends &lt;code&gt;UIInput&lt;/code&gt;
all of the attributes and nested child content for any
&lt;code&gt;UIInput&lt;/code&gt; tags are valid on this tag as well.&lt;/p&gt;
</description>
<tag-name>viewParam</tag-name>
<component>
<component-type>javax.faces.Parameter</component-type>
<renderer-type/>
</component>
<attribute>
<description>
The name of the request parameter from which the value for this component
is retrieved on an initial request or to override the stored value on a
postback.
</description>
<name>name</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Converter instance registered with this component.
</description>
<name>converter</name>
<required>false</required>
<type>javax.faces.convert.Converter</type>
</attribute>
<attribute>
<description>
A ValueExpression enabled attribute that, if present, will be
used as the text of the converter message, replacing any message
that comes from the converter.
</description>
<name>converterMessage</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
The component identifier for this component. This value must be
unique within the closest parent component that is a naming
container.
</description>
<name>id</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Flag indicating that the user is required to provide a submitted
value for this input component.
</description>
<name>required</name>
<required>false</required>
<type>boolean</type>
</attribute>
<attribute>
<description>
A ValueExpression enabled attribute that, if present, will be
used as the text of the validation message for the "required"
facility, if the "required" facility is used.
</description>
<name>requiredMessage</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
MethodExpression representing a validator method that will be
called
during Process Validations to perform correctness checks on the
value of this component. The expression must evaluate to a
public
method that takes FacesContext, UIComponent, and Object
parameters,
with a return type of void.
</description>
<name>validator</name>
<required>false</required>
<method-signature>void validate(javax.faces.context.FacesContext,
javax.faces.component.UIComponent, java.lang.Object)
</method-signature>
</attribute>
<attribute>
<description>
A ValueExpression enabled attribute that, if present, will be
used as the text of the validator message, replacing any
message that comes from the validator.
</description>
<name>validatorMessage</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
A ValueExpression to which the value of the request parameter, as
determined by the name attribute, is bound. The resolved value of this
expression is used when encoding the view parameter into a bookmarkable link or
redirect URL with view parameter encoding enabled. If this attribute is omitted,
the value of the request parameter will instead be the local value of the
UIViewParameter.
</description>
<name>value</name>
<required>false</required>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
&lt;p&gt;
MethodExpression representing a value change listener method
that will be notified when a new value has been set for this
input component. The expression must evaluate to a public
method that takes a &lt;code&gt;ValueChangeEvent&lt;/code&gt;
parameter,
with a return type of void, &lt;span class="changed_added_2_0"&gt;or
to a public method that takes no arguments with a return type
of void. In the latter case, the method has no way of easily
knowing what the new value is, but this can be useful in cases
where a notification is needed that "this value
changed".&lt;/span&gt;
&lt;/p&gt;
</description>
<name>valueChangeListener</name>
<required>false</required>
<method-signature>void
valueChange(javax.faces.event.ValueChangeEvent)
</method-signature>
</attribute>
<attribute>
<description>
The maximum number of characters that may
be entered in this field.
</description>
<name>maxlength</name>
<required>false</required>
<type>int</type>
</attribute>
<attribute>
<description>
The ValueExpression linking this component to a property in a
backing bean
</description>
<name>binding</name>
<required>false</required>
<type>javax.faces.component.UIComponent</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Register a PhaseListener instance on the UIViewRoot in which
this tag is nested.
</description>
<tag-name>phaseListener</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.PhaseListenerHandler</handler-class>
<attribute>
<description>
Fully qualified Java class name of an PhaseListener to be
created and registered.
</description>
<name>type</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Value binding expression that evaluates to an object that
implements javax.faces.event.PhaseListener.
</description>
<name>binding</name>
<required>false</required>
<type>javax.faces.event.PhaseListener</type>
</attribute>
</tag>
<tag>
<description>
Add a child UISelectItem component to the UIComponent
associated with the closest parent UIComponent custom
action.
</description>
<tag-name>selectItem</tag-name>
<component>
<component-type>javax.faces.SelectItem</component-type>
<renderer-type/>
</component>
<attribute>
<description>
Value binding expression to a backing bean
property bound to the component instance for
the UIComponent created by this custom action.
</description>
<name>binding</name>
<type>javax.faces.component.UIComponent</type>
</attribute>
<attribute>
<description>
Component identifier of the UISelectItem
component to be created.
</description>
<name>id</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Description of this option, for use in
development tools.
</description>
<name>itemDescription</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Flag indicating whether the option created
by this component is disabled. Expressions
must evaluate to a boolean. Default value
is false.
</description>
<name>itemDisabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Label to be displayed to the user
for this option.
</description>
<name>itemLabel</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Flag indicating that characters that are sensitive in
the value of the &lt;code&gt;itemLabel&lt;/code&gt;
attribute must be escaped. This flag is set to "true" by
default.
</description>
<name>escape</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Value to be returned to the server if this
option is selected by the user.
</description>
<name>itemValue</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Value binding expression pointing at a
SelectItem instance containing the
information for this option.
</description>
<name>value</name>
<type>javax.faces.model.SelectItem</type>
</attribute>
<attribute>
<description>
Flag indicating whether the option created by this
component represents the special "no selection"
option. Expressions must evaluate to a boolean.
Default value is false.
</description>
<name>noSelectionOption</name>
<type>java.lang.Boolean</type>
</attribute>
</tag>
<tag>
<description>
&lt;p&gt;&lt;span class="changed_modified_2_0"&gt;Add&lt;/span&gt; a
child UISelectItems component to the UIComponent associated
with the closed parent UIComponent custom action.&lt;/p&gt;
&lt;p class="changed_modified_2_0"&gt;When iterating over the
select items, &lt;code&gt;toString()&lt;/code&gt; mest be called on
the
string rendered attribute values.&lt;/p&gt;
&lt;p class="changed_added_2_0"&gt;Version 2 of the specification
introduces
several new attributes, described below. These are: var, itemValue,
itemLabel, itemDescription, itemDisabled, and itemLabelEscaped.&lt;/p&gt;
</description>
<tag-name>selectItems</tag-name>
<component>
<component-type>javax.faces.SelectItems</component-type>
<renderer-type/>
</component>
<attribute>
<description>
Value binding expression to a backing bean
property bound to the component instance for
the UIComponent created by this custom action.
</description>
<name>binding</name>
<type>javax.faces.component.UIComponent</type>
</attribute>
<attribute>
<description>
Component identifier of the UISelectItems
component to be created.
</description>
<name>id</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p&gt;Value expression pointing at &lt;span
class="changed_modified_2_0"&gt;any &lt;code&gt;Collection&lt;/code&gt;
or array.&lt;/span&gt; The member elements may be instances of
&lt;code&gt;SelectItem&lt;/code&gt; &lt;span
class="changed_added_2_0"&gt;or any Java Object. In the
case where the member elements are plain Java Objects,
several additional attributes must be used by the page
author to correctly identify the data to the enclosing
&lt;code&gt;UISelectOne&lt;/code&gt; or &lt;code&gt;UISelectMany&lt;/code&gt;
component, as shown in the following example.&lt;/span&gt;
&lt;div class="syntax"&gt;&lt;div class="html4strict"
style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;h:selectOneListbox
&lt;span class="kw3"&gt;size&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;
&lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;escape02&amp;quot;&lt;/span&gt;
&lt;span class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;#{select05NoSelection.initialCollectionValues}&amp;quot;&lt;/span&gt;&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
class="sc2"&gt;&amp;lt;f:selectItems &lt;span class="kw3"&gt;value&lt;/span&gt;=&lt;span
class="st0"&gt;&amp;quot;#{select05NoSelection.hobbitList}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;var=&lt;span class="st0"&gt;&amp;quot;n&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;itemValue=&lt;span class="st0"&gt;&amp;quot;#{n}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;itemLabel=&lt;span class="st0"&gt;&amp;quot;#{n.bio}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;itemDescription=&lt;span class="st0"&gt;&amp;quot;#{n.description}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;itemDisabled=&lt;span class="st0"&gt;&amp;quot;#{n.disabled}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;itemLabelEscaped=&lt;span class="st0"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;noSelectionValue=&lt;span class="st0"&gt;&amp;quot;#{select05NoSelection.hobbitList[0]}&amp;quot;&lt;/span&gt;/&lt;span
class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span
class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:selectOneListbox&amp;gt;&lt;/span&gt;
&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p class="changed_added_2_0"&gt;In the preceding example, the
&lt;code&gt;value&lt;/code&gt; attribute on line 1 points to a
&lt;code&gt;Collection&amp;lt;HobbitBean&amp;gt;&lt;/code&gt;.
&lt;code&gt;HobbitBean&lt;/code&gt; is
just a regular Java Object (POJO) that conforms to JavaBeans
naming
conventions for its properties. The &lt;code&gt;value&lt;/code&gt;
attribute on
line 2 points to a &lt;code&gt;List&amp;lt;HobbitBean&amp;gt;&lt;/code&gt;,
though it could
just as well point to a &lt;code&gt;Collection&lt;/code&gt;,
array, or
&lt;code&gt;javax.faces.model.DataModel&lt;/code&gt;. The
attributes on lines 3
through 9, inclusive, leverage the fact that the value is a
collection
of POJOs.
&lt;/p&gt;
&lt;/p&gt;
</description>
<name>value</name>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;Expose the value from the
&lt;code&gt;value&lt;/code&gt; attribute under this request
scoped key so that it
may be referred to in EL for the value of other attributes.&lt;/p&gt;
</description>
<name>var</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;evaluates to a
&lt;code&gt;Collection&lt;/code&gt;, array, or &lt;code&gt;Map&lt;/code&gt;
from which the items
to be shown will be rendered.&lt;/p&gt;
</description>
<name>itemValue</name>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;evaluates to a String that
will
serve as the label to be shown for the item.&lt;/p&gt;
</description>
<name>itemLabel</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;evaluates to a String that
will
serve as the description to be shown for the item.&lt;/p&gt;
</description>
<name>itemDescription</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;evaluates to a boolean that
will
determine if the item value is selectable or not.&lt;/p&gt;
</description>
<name>itemDisabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;evaluates to a boolean that
will
determine if the rendered markup for the item receives normal
JSF HTML escaping or not.&lt;/p&gt;
</description>
<name>itemLabelEscaped</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;Is either an EL expression
pointing to the element in the value collection whose value
should be
marked as a &amp;#8220;no selection&amp;#8221; item, or a
literal string that
exactly matches the value of the item in the collection that
must be
marked as the &amp;#8220;no selection&amp;#8221; item. If the
user selects such
an item &lt;strong&gt;and&lt;/strong&gt; the field is marked as
required, then it
will not pass validation.&lt;/p&gt;
</description>
<name>itemLabelEscaped</name>
<type>java.lang.Boolean</type>
</attribute>
</tag>
<tag>
<description>
&lt;p&gt;Register an ActionListener instance on the UIComponent
associated with the closest parent UIComponent custom action.
This actionListener will cause the value given by the "value"
attribute to be set into the ValueExpression given by the "target"
attribute.&lt;/p&gt;
&lt;p&gt;The implementation of this tag creates a special
&lt;code&gt;ActionListener&lt;/code&gt; instance and registers it on
the
&lt;code&gt;ActionSource&lt;/code&gt; associated with our most
immediate surrounding
instance of a tag whose implementation class is a subclass of
&lt;code&gt;UIComponentTag&lt;/code&gt;. This tag creates no output
to the page
currently being created.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ActionListener&lt;/code&gt; instance
created and installed by
this tag has the following behavior and contract.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Only create and register the &lt;code&gt;ActionListener&lt;/code&gt;
instance
the first time the component for this tag is created&lt;/li&gt;
&lt;li&gt;The "target" and "value" tag attributes are
ValueExpression
instances and are stored unevaluated as instance variables of the
listener.&lt;/li&gt;
&lt;li&gt;When the listener executes, perform the following:
&lt;ul&gt;
Call getValue() on the "value" ValueExpression.
&lt;/ul&gt;
&lt;ul&gt;
If value of the "value" expression is null, call setValue() on
the "target" ValueExpression with the null value.
&lt;/ul&gt;
&lt;ul&gt;
If the value of the "value" expression is not null, call getType()
on the "value" and "target" ValueExpressions to determine their
property types.
&lt;/ul&gt;
&lt;ul&gt;
Coerce the value of the "value" expression to the "target"
expression value type following the Expression Language coercion
rules. Call setValue() on the "target" ValueExpression with the
resulting value.
&lt;/ul&gt;
&lt;ul&gt;
If either coercion or the execution of setValue() fails throw an
AbortProcessingException.
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<tag-name>setPropertyActionListener</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.SetPropertyActionListenerHandler</handler-class>
<attribute>
<description>
ValueExpression to be stored as the value of the target
attribute.
</description>
<name>value</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
ValueExpression that is the destination of the value
attribute.
</description>
<name>target</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Container action for all JavaServer Faces core and
custom component actions used on a nested page via
"jsp:include" or any custom action that dynamically
includes another page from the same web application,
such as JSTL's "c:import".
</description>
<tag-name>subview</tag-name>
<component>
<component-type>javax.faces.NamingContainer</component-type>
<renderer-type/>
</component>
<attribute>
<description>
Value binding expression to a backing bean
property bound to the component instance for
the UIComponent created by this custom action.
</description>
<name>binding</name>
<type>javax.faces.component.UIComponent</type>
</attribute>
<attribute>
<description>
Component identifier of the UINamingContainer
component to be created.
</description>
<name>id</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Flag indicating whether this component (and its
children) should be rendered. Expressions must
evaluate to a boolean.
</description>
<name>rendered</name>
<type>java.lang.Boolean</type>
</attribute>
</tag>
<tag>
<description>
Register a DoubleRangeValidator instance on the
UIComponent associated with the closest parent
UIComponent custom action.
</description>
<tag-name>validateDoubleRange</tag-name>
<validator>
<validator-id>javax.faces.DoubleRange</validator-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
</validator>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Maximum value allowed for this component.
</description>
<name>maximum</name>
<type>java.lang.Double</type>
</attribute>
<attribute>
<description>
Minimum value allowed for this component.
</description>
<name>minimum</name>
<type>java.lang.Double</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
DoubleRangeValidator.
</description>
<name>binding</name>
<type>javax.faces.validator.DoubleRangeValidator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Register a LengthValidator instance on the
UIComponent associated with the closest parent
UIComponent custom action.
</description>
<tag-name>validateLength</tag-name>
<validator>
<validator-id>javax.faces.Length</validator-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
</validator>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Maximum length allowed for this component.
</description>
<name>maximum</name>
<type>java.lang.Integer</type>
</attribute>
<attribute>
<description>
Minimum length allowed for this component.
</description>
<name>minimum</name>
<type>java.lang.Integer</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
LenghtValidator.
</description>
<name>binding</name>
<type>javax.faces.validator.LengthValidator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Register a LongRangeValidator instance on the
UIComponent associated with the closest parent
UIComponent custom action.
</description>
<tag-name>validateLongRange</tag-name>
<validator>
<validator-id>javax.faces.LongRange</validator-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
</validator>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Maximum value allowed for this component.
</description>
<name>maximum</name>
<type>java.lang.Long</type>
</attribute>
<attribute>
<description>
Minimum value allowed for this component.
</description>
<name>minimum</name>
<type>java.lang.Long</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
LongRangeValidator.
</description>
<name>binding</name>
<type>javax.faces.validator.LongRangeValidator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>&lt;p&gt;
&lt;span class="changed_added_2_0"&gt;
A validator that delegates the validation of the local value
to the Bean Validation API. The validationGroups attribute
serves as a filter that instructs the Bean Validation API which
contraints to enforce. If there are any constraint violations
reported by Bean Validation, the value is considered invalid.
&lt;/p&gt;
</description>
<tag-name>validateBean</tag-name>
<validator>
<validator-id>javax.faces.Bean</validator-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
</validator>
<attribute>
<description>
A comma-separated list of validation groups. A validation group
is a fully-qualified class name.
</description>
<name>validationGroups</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
BeanValidator.
</description>
<name>binding</name>
<type>javax.faces.validator.BeanValidator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>&lt;p&gt;
&lt;span class="changed_added_2_0"&gt;
A validator that uses the pattern attribute to validate the
wrapping component. The entire pattern is matched against
the String value of the component. If it matches, it's
valid.
&lt;/p&gt;
</description>
<tag-name>validateRegex</tag-name>
<validator>
<validator-id>javax.faces.RegularExpression</validator-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
</validator>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
A regular expression pattern. Remember that, like in
all Java strings, backslash must be escaped with another
backslash.
</description>
<name>pattern</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
RegexpValidator.
</description>
<name>binding</name>
<type>javax.faces.validator.RegexValidator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
&lt;p class="changed_added_2_0"&gt;A validator that enforces
the presence of a value. It has the same affect as setting the
required attribute on a UIInput to true.&lt;/p&gt;
</description>
<tag-name>validateRequired</tag-name>
<validator>
<validator-id>javax.faces.Required</validator-id>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
</validator>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an instance of
RequiredValidator.
</description>
<name>binding</name>
<type>javax.faces.validator.RequiredValidator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
&lt;p&gt;&lt;span class="changed_modified_2_0"&gt;Register&lt;/span&gt;
a named
Validator instance on the UIComponent associated with the
closest parent UIComponent custom action.&lt;/p&gt;
&lt;div class="changed_added_2_0"&gt;
&lt;p&gt;Usage outside of an &lt;code&gt;EditableValueHolder&lt;/code&gt;
parent&lt;/p&gt;
&lt;p&gt;If this element is nested within a
&lt;code&gt;UIComponent&lt;/code&gt; tag that has other
&lt;code&gt;UIComponent&lt;/code&gt; children, the validator will be
automatically added to all the child components as well as
this one. The implementation must ensure this occurs even if
the parent of this element is not an instance of
&lt;code&gt;EditableValueHolder&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
</description>
<tag-name>validator</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValidateDelegateHandler</handler-class>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;A boolean value
enabling page level determination of whether or not this
validator is enabled on the enclosing component.&lt;/p&gt;
</description>
<name>disabled</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Validator identifier of the Validator
to be created and registered.
</description>
<name>validatorId</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
A ValueExpression that evaluates to an object that implements
the javax.faces.validator.Validator interface.
</description>
<name>binding</name>
<type>javax.faces.validator.Validator</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Register a ValueChangeListener instance on the UIComponent
associated with the closest parent UIComponent custom
action.
</description>
<tag-name>valueChangeListener</tag-name>
<handler-class>com.sun.faces.facelets.tag.jsf.core.ValueChangeListenerHandler</handler-class>
<attribute>
<description>
Fully qualified Java class name of a
ValueChangeListener to be created and registered.
</description>
<name>type</name>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Value binding expression that evaluates to an object that
implements javax.faces.event.ValueChangeListener.
</description>
<name>binding</name>
<required>false</required>
<type>javax.faces.event.ValueChangeListener</type>
</attribute>
<attribute>
<description>
&lt;p class="changed_added_2_0"&gt;If present, this attribute
refers
to the value of one of the exposed attached objects within the
composite component inside of which this tag is nested.&lt;/p&gt;
</description>
<name>for</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
</tag>
<tag>
<description>
Create and register a child UIOutput component
associated with the closest parent UIComponent
custom action, which renders nested body content.
</description>
<tag-name>verbatim</tag-name>
<component>
<component-type>javax.faces.Output</component-type>
<renderer-type>javax.faces.Text</renderer-type>
</component>
<attribute>
<description>
Flag indicating that generated markup must
be escaped in a manner that is appropriate
for the markup language to be rendered.
Expressions must evaluate to a boolean.
Default value is false.
</description>
<name>escape</name>
<type>java.lang.Boolean</type>
</attribute>
<attribute>
<description>
Flag indicating whether or not this component should be rendered
(during Render Response Phase), or processed on any subsequent
form submit. The default value for this property is true.
</description>
<name>rendered</name>
<required>false</required>
<type>java.lang.Boolean</type>
</attribute>
</tag>
<tag>
<description>
Container for all JavaServer Faces core and custom
component actions used on a page.
</description>
<tag-name>view</tag-name>
<component>
<component-type>javax.faces.ViewRoot</component-type>
<renderer-type/>
</component>
<attribute>
<description>
Locale to use for localizing this page. Expressions
must evaluate to a java.util.Locale or to a String
that is converted to a Locale.
</description>
<name>locale</name>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description>
Identifier for the RenderKit to use for
rendering this page.
</description>
<name>renderKitId</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Specifies the content-type of the response.
</description>
<name>contentType</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Specifies the character encoding that should be used for the
response.
</description>
<name>encoding</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
MethodBinding pointing to a method that takes a
javax.faces.event.PhaseEvent and returns void. This method
will be called before every phase except for restore view.
</description>
<name>beforePhase</name>
<required>false</required>
<method-signature>void beforePhase(javax.faces.event.PhaseEvent)
</method-signature>
</attribute>
<attribute>
<description>
MethodBinding pointing to a method that takes a
javax.faces.event.PhaseEvent and returns void. This method
will be called after every phase except for restore view.
</description>
<name>afterPhase</name>
<required>false</required>
<method-signature>void afterPhase(javax.faces.event.PhaseEvent)
</method-signature>
</attribute>
</tag>
</facelet-taglib>