Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facelet.core/std-taglibs/composite.taglib.xml')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/std-taglibs/composite.taglib.xml1710
1 files changed, 0 insertions, 1710 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/std-taglibs/composite.taglib.xml b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/std-taglibs/composite.taglib.xml
deleted file mode 100644
index 32f722f5c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/std-taglibs/composite.taglib.xml
+++ /dev/null
@@ -1,1710 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
- Copyright 2009 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>
-
-
- &lt;/pre&gt;
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;Describes the Facelets2 tag library used for declaring and
- defining
- the usage contract for composite UI Components. When authoring a
- composite component, use of this tag library is largely optional,
- though always recommended. Declaring and defining a composite
- component with this taglib provides valuable information about the
- component that can be used by tools and users of the composite
- component. In most cases, a composite component can be authored
- without declaring and defining its usage contract with this taglib.
- PENDING: the limit of what one can do without declaring and defining a
- usage contract must be cleary specified and documented. PENDING: The
- implementation team must help discover these limits.
- &lt;/p&gt;
-
- &lt;h2&gt;Creating a Composite Component&lt;/h2&gt;
-
- &lt;p&gt;The default implementation must support authoring A composite
- component is declared by creating a Facelets2 file inside of a resource
- library. (See section JSF.2.6 of the specification prose document for
- more information about resource libraries.) A composite component
- must reside within a resource library. It is not possible to create a
- composite component without putting it inside of a resource
- library.&lt;/p&gt;
-
- &lt;p&gt;The default XML namespace URI of the taglib that contains the
- composite component, for use in &lt;em&gt;the using page&lt;/em&gt;, is
- &lt;code&gt;http://java.sun.com/jsf/composite/&amp;lt;composite-library-name&amp;gt;&lt;/code&gt;,
- where &lt;code&gt;&amp;lt;composite-library-name&amp;gt;&lt;/code&gt; is
- the name of the
- resource library. For example:&lt;/p&gt;
-
- &lt;pre&gt;&lt;code&gt;
- &amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- &lt;br /&gt;
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br
- /&gt;
- &amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;
- xmlns:h="http://java.sun.com/jsf/html"&lt;br /&gt;
- xmlns:f="http://java.sun.com/jsf/core"&lt;br /&gt;
- xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;
- xmlns:ez="&lt;i&gt;http://java.sun.com/jsf/composite/&lt;b&gt;ezcomp&lt;/b&gt;&lt;/i&gt;"&amp;gt;&lt;br
- /&gt;
- ...&lt;br /&gt;
- &lt;/code&gt;&lt;/pre&gt;
-
- &lt;p&gt;This declares that any Facelets2 file in the resource
- library called &lt;code&gt;ezcomp&lt;/code&gt; can be used as a regular
- JSF UI
- component in a page with the above namespace declaration by using the
- "&lt;code&gt;ez&lt;/code&gt;" prefix. For example, placing a file called
- &lt;code&gt;foo.xhtml&lt;/code&gt; in a resource library called &lt;code&gt;ezcomp&lt;/code&gt;
- would make that file accessible like this.&lt;/p&gt;
-
- &lt;pre&gt;&lt;code&gt;
- &amp;lt;ez:foo /&amp;gt;
- &lt;/code&gt;&lt;/pre&gt;
-
-
- &lt;p&gt;The implementation must also support declaring the
- namespace of the tag library in a JSF PDL tag library descriptor.
- This descriptor file is optional and is useful for component vendors
- that do not want to use the default XML namespace. This version of
- the proposal currently uses the facelet taglib descriptor syntax. For
- example: &lt;/p&gt;
-
- &lt;pre&gt;&lt;code&gt;
- &amp;lt;facelet-taglib&amp;gt;&lt;br /&gt;
- &amp;lt;namespace&amp;gt;http://domain.com/path&amp;lt;/namespace&amp;gt;
- &lt;br /&gt;
- &amp;lt;composite-library-name&amp;gt;compositeTest&amp;lt;/composite-library-name&amp;gt;
- &lt;br /&gt;
- &amp;lt;/facelet-taglib&amp;gt; &lt;br /&gt;
- &lt;/code&gt;&lt;/pre&gt;
-
- &lt;p&gt;Components from that taglibrary may be used in a using page by
- declaring them in the XML namespace for that page:&lt;/p&gt;
-
- &lt;pre&gt;&lt;code&gt;
- &amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- &lt;br /&gt;
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br
- /&gt;
- &amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;
- xmlns:h="http://java.sun.com/jsf/html"&lt;br /&gt;
- xmlns:f="http://java.sun.com/jsf/core"&lt;br /&gt;
- xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;
- xmlns:ez="&lt;i&gt;&lt;b&gt;http://domain.com/path/namespace&lt;/b&gt;&lt;/i&gt;"&amp;gt;&lt;br
- /&gt;
- ...&lt;br /&gt;
- &lt;/code&gt;&lt;/pre&gt;
-
-
- &lt;p&gt;&lt;a name="composite_example"&gt;Below is an example of a
- fairly
- involved composite component declaration. Such a declaration might
- appear in &lt;code&gt;foo.xhtml&lt;/code&gt;.&lt;/a&gt;&lt;/p&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;&lt;a
- href="interface.html"&gt;composite:interface&lt;/a&gt; &lt;span
- class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;foo&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; &amp;nbsp;
- &amp;nbsp;displayName=&lt;span class="st0"&gt;&amp;quot;Very Simple
- Login Panel&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; &amp;nbsp;
- &amp;nbsp;preferred=&lt;span class="st0"&gt;&amp;quot;true&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; &amp;nbsp;
- &amp;nbsp;expert=&lt;span class="st0"&gt;&amp;quot;false&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; &amp;nbsp;
- &amp;nbsp;shortDescription=&lt;span class="st0"&gt;&amp;quot;An
- illustration of the composite component feature&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;&lt;a href="attribute.html"&gt;composite:attribute&lt;/a&gt;
- &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;model&amp;quot;&lt;/span&gt;
- required=&lt;span class="st0"&gt;&amp;quot;true&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;&amp;lt;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;loginAction&amp;quot;&lt;/span&gt; required=&lt;span
- class="st0"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; method-signature=&lt;span
- class="st0"&gt;&amp;quot;java.lang.Object action()&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;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:attribute&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
- class="sc2"&gt;&amp;lt;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;valueChangeListener&amp;quot;&lt;/span&gt;
- targets=&lt;span class="st0"&gt;&amp;quot;username&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;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;specialMethodExpression&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; &amp;nbsp;
- &amp;nbsp; &amp;nbsp;method-signature=&lt;span class="st0"&gt;&amp;quot;com.foo.User
- validateCurrentUser()&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;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;loginButtonLabel&amp;quot;&lt;/span&gt;
- default=&lt;span class="st0"&gt;&amp;quot;Login&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;span
- class="sc2"&gt;&amp;lt;&lt;a href="editableValueHolder.html"&gt;composite:editableValueHolder&lt;/a&gt;
- &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;username&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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;loginEvent&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;span
- class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;cancelEvent&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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;allEvents&amp;quot;&lt;/span&gt; targets=&lt;span
- class="st0"&gt;&amp;quot;loginEvent,cancelEvent&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&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;&amp;lt;&lt;a
- href="implementation.html"&gt;composite:implementation&lt;/a&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;&amp;nbsp; &lt;span
- class="sc2"&gt;&amp;lt;ui:decorate template=&lt;span class="st0"&gt;&amp;quot;fooTemplate.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="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;&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;header&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;
- &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;This
- is the login panel header&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&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;&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;&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;body&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;
- &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;
- &amp;nbsp; &amp;nbsp;&lt;span class="sc2"&gt;&amp;lt;h:inputText &lt;span
- class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;username&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;
- &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;
- &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;
- &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;h:commandButton &lt;span
- class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;loginEvent&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; &amp;nbsp;
- &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="kw3"&gt;value&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;#{cc.attrs.loginButtonLabel}&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;/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;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:commandButton&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&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;h:commandButton &lt;span
- class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;cancelEvent&amp;quot;&lt;/span&gt;
- &lt;span class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;
- &lt;span class="kw3"&gt;action&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;cancel&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;/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;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:commandButton&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&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;special:validateUserButton
- &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; validateUser=&lt;span class="st0"&gt;&amp;quot;#{cc.attrs.specialMethodExpression}&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;&amp;nbsp;&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;/p&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;/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;&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;&amp;lt;ui:define &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;footer&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;/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;p&amp;gt;&lt;/span&gt;&lt;/span&gt;This
- is the login panel footer&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&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;/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;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
- class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:decorate&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&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;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;The values for attributes in a composite component PDL file can
- be
- fully localized by putting them inside a ResourceBundle in the same
- directory as the PDL page and accessing them with the per-component
- resource bundle syntax. Consider the file &lt;code&gt;foo.xhtml&lt;/code&gt;,
- in
- the resource library &lt;code&gt;ezcomp&lt;/code&gt;. The
- &lt;code&gt;shortDescription&lt;/code&gt; element could be changed to
- be:&lt;/p&gt;
-
- &lt;pre&gt;&lt;code&gt;
- &amp;lt;composite:interface
- shortDescription="#{cc.resourceBundleMap.shortDescription}" &amp;gt;
- &lt;/code&gt;&lt;/pre&gt;
-
- &lt;p&gt;In this case, In the same &lt;code&gt;ezcomp&lt;/code&gt;
- directory as
- &lt;code&gt;foo.xhtml&lt;/code&gt;, there would be a &lt;code&gt;foo.properties&lt;/code&gt;
- file that would contain this entry:&lt;/p&gt;
-
- &lt;pre&gt;&lt;code&gt;
- shortDescription=A really nifty login panel.
- &lt;/code&gt;&lt;/pre&gt;
-
- &lt;p&gt;The normal localization rules for &lt;code&gt;ResourceBundle&lt;/code&gt;
- would
- apply.&lt;/p&gt;
-
- &lt;/div&gt;
-
-
- &lt;pre&gt;
-
-
- </description>
- <namespace>http://java.sun.com/jsf/composite</namespace>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;This element declares the usage contract for a composite
- component. Optionally, and at the component author's
- discretion, this contract exposes the features of one or
- more inner components to the page author. The page author
- can work with the composite component as a single component
- whose feature set is the union of the features declared in
- the usage contract.&lt;/p&gt;
-
- &lt;p&gt;For example, consider a composite component that
- implements the functionality of a "login panel". Such a
- component would likely have two text fields and one button.
- The user of such a component might like to do one or more of
- the following.&lt;/p&gt;
-
- &lt;ul&gt;
-
- &lt;li&gt;&lt;p&gt;Be able to listen for the &lt;code&gt;ActionEvent&lt;/code&gt;
- on the button.&lt;/p&gt;
-
- &lt;p&gt;In this case, a
- &lt;code&gt;&amp;lt;composite:actionSource&amp;gt;&lt;/code&gt;
- element is
- included in the usage contract that refers to the inner
- button in the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section.&lt;/p&gt;
-
- &lt;/li&gt;
-
- &lt;li&gt;&lt;p&gt;Provide an "action" to invoke when the button is
- pressed.
- &lt;/p&gt;
-
- &lt;p&gt;In this case, a
- &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt; element
- is included
- in the usage contract that refers to the inner button in the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section and
- declares the proper method signature for an "action".&lt;/p&gt;
-
- &lt;/li&gt;
-
- &lt;li&gt;&lt;p&gt;Provide parameters to the composite component for
- labels and other rendering specific aspects of the composite
- component.&lt;/p&gt;
-
- &lt;p&gt;In this case, one or more
- &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt;
- elements are included
- in the usage contract and those parameters are referred to in
- the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section
- using EL expressions like
- &lt;code&gt;#{cc.attrs.usernameLabel}&lt;/code&gt;,
- assuming &lt;code&gt;usernameLabel&lt;/code&gt; is the &lt;code&gt;name&lt;/code&gt;
- of one of the &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt;
- elements in the usage contract.&lt;/p&gt;
-
- &lt;/li&gt;
-
-
- &lt;li&gt;&lt;p&gt;Add &lt;code&gt;ValueChangeListener&lt;/code&gt;s,
- &lt;code&gt;Converter&lt;/code&gt;s, or &lt;code&gt;Validator&lt;/code&gt;s
- to either
- or both text fields.
- &lt;/p&gt;
-
- &lt;p&gt;In this case, a
- &lt;code&gt;&amp;lt;composite:editableValueHolder&amp;gt;&lt;/code&gt;
- element is
- included in the usage contract that refers to the inner text
- field in the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. In the case of wanting to enable only adding a
- &lt;code&gt;Converter&lt;/code&gt; (and not a
- &lt;code&gt;ValueChangeListener&lt;/code&gt; or &lt;code&gt;Validator&lt;/code&gt;,
- a
- &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
- element would be
- used.&lt;/p&gt;
-
- &lt;/li&gt;
-
- &lt;li&gt;&lt;p&gt;Add facet children to the login panel.&lt;/p&gt;
-
- &lt;p&gt;In this case, a &lt;code&gt;&amp;lt;composite:facet&amp;gt;&lt;/code&gt;
- element is included in the usage contract that refers to the
- inner &lt;code&gt;&amp;lt;composite:renderFacet&amp;gt;&lt;/code&gt;
- element in
- the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section.
- &lt;/p&gt;
-
- &lt;/li&gt;
-
-
- &lt;/ul&gt;
-
- &lt;p&gt;For each of the behaviorial interfaces in Section JSF.3.2
- of
- the specification, there is a tag in the
- &lt;code&gt;composite:&lt;/code&gt; library to nest inside of the
- &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
- section.
- &lt;/p&gt;
-
-
- &lt;p&gt;If the &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
- section
- is not present in a &lt;em&gt;PDL page&lt;/em&gt;, the contract will
- be
- inferred as described in the specification. There must be
- zero or one of these elements in a composite component PDL
- file. If a &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
- element
- does appear, there must be an accompanying
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- element in the
- same PDL file. &lt;/p&gt;
-
- &lt;p&gt;&lt;b&gt;Nesting of composite components&lt;/b&gt;&lt;/p&gt;
-
- &lt;p&gt;The implementation must support nesting of composite
- components. Specifically, it must be possible for the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section of a
- composite component to act as the &lt;em&gt;using page&lt;/em&gt;
- for
- another composite component. When a composite component
- exposes a behavioral interface to the &lt;em&gt;using page&lt;/em&gt;,
- such as a &lt;code&gt;&amp;lt;composite:actionSource&amp;gt;&lt;/code&gt;,
- &lt;code&gt;&amp;lt;composite:editableValueHolder&amp;gt;&lt;/code&gt;,
- &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt; or
- other
- behavioral interface, it must be possible to
- &amp;#8220;propogate&amp;#8221; the exposure of such an interface in
- the case of a nested composite component. The composite
- component author must ensure that the value of the
- &lt;code&gt;name&lt;/code&gt; attributes exactly match at all levels
- of
- the nesting to enable this exposure to work. The
- implementation is not required to support
- &amp;#8220;re-mapping&amp;#8221; of names in a nested composite
- component.&lt;/p&gt;
-
- &lt;p&gt;For example, consider this nested composite component.&lt;/p&gt;
-
- &lt;p&gt;Using page&lt;/p&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;ez:actionSourceOuter&amp;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:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button1&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:actionSourceOuter&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;actionSourceOuter.xhtml: Outer composite component&lt;/p&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;composite:interface&amp;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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button1&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;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;ez:actionSourceInner /&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;actionSourceInner.xhtml: the composite component used
- within a
- composite component.&lt;/p&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;composite:interface&amp;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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button1&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;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;h:commandButton &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button1&amp;quot;&lt;/span&gt; &lt;span
- class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;the
- real button&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;The &lt;code&gt;id&lt;/code&gt; of the &lt;code&gt;&amp;lt;h:commandButton&amp;gt;&lt;/code&gt;
- on
- line 6 of actionSourceInner.xhtml must match the &lt;code&gt;name&lt;/code&gt;
- on
- line 2 of that file (this is a standard requirement for all
- composite
- components, nested or not). That &lt;code&gt;id&lt;/code&gt; must
- also match the
- &lt;code&gt;name&lt;/code&gt; on line 2 of actionSourceOuter.xhtml,
- and the
- &lt;code&gt;for&lt;/code&gt; on line 2 of the using page.&lt;/p&gt;
-
- &lt;p&gt;The implementation must support any level of nesting as
- long as the
- &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;name&lt;/code&gt;, and
- &lt;code&gt;id&lt;/code&gt; values match
- up. Furthermore, the &lt;code&gt;targets&lt;/code&gt; attribute is
- also valid for
- use in this nested fashion.&lt;/p&gt;
-
- &lt;p&gt;&lt;b&gt;Naming containers within composite components&lt;/b&gt;&lt;/p&gt;
-
- &lt;p&gt;Composite components are themselves naming containers so
- that any
- possible id conflicts between inner components and components in the
- using page are avoided. However, special care must be taken when
- using
- naming containers in the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. In such cases the value of the &amp;#8220;name&amp;#8221;
- attribute,
- or the values of the &amp;#8220;targets&amp;#8221; attribute must be
- used with a
- clientId relative to the &lt;em&gt;top level component&lt;/em&gt; to
- expose any
- attached object targets to the using page. For example:&lt;/p&gt;
-
- &lt;p&gt;Using page&lt;/p&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;ez:loginButton&amp;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:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span
- class="kw3"&gt;binding&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;#{foo.actionListener}&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:loginButton&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
-
- &lt;p&gt;loginButton.xhtml&lt;/p&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;composite:interface&amp;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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button&amp;quot;&lt;/span&gt; targets=&lt;span
- class="st0"&gt;&amp;quot;form:button&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
- class="sc2"&gt;&amp;lt;h:form &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;form&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;h:commandButton &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span
- class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;Submit&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;span
- class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:form&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;/composite:implementation&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;Because the button on line 8 resides within a form, it must
- be
- referred to using a client id, relative to the &lt;em&gt;top level
- component&lt;/em&gt;, in the "targets" attribute on line 2. Using a
- relative
- clientId is required due to the semantics of
- &lt;code&gt;UIComponent.findComponent()&lt;/code&gt;.&lt;/p&gt;
-
- &lt;/div&gt;
-
- </description>
- <tag-name>interface</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.InterfaceHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The name of this composite component.
- Advisory only. The real name is taken from the
- filename. The value of this attribute will be set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The &lt;code&gt;component-type&lt;/code&gt; of the &lt;code&gt;UIComponent&lt;/code&gt;
- that
- will serve as the &lt;em&gt;composite component root&lt;/em&gt;
- for this composite
- component. The declared &lt;code&gt;component-family&lt;/code&gt;
- for this
- component must be &lt;code&gt;javax.faces.NamingContainer&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>componentType</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The name to display in a tool palette
- containing this component. The value of this attribute will be
- set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>displayName</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Is this a "preferred" component. The value
- of this attribute will be set as the value for this
- property on the &lt;em&gt;composite component bean
- descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>preferred</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Is this component only for expert users?
- The value of this attribute will be set as the value for
- this property on the &lt;em&gt;composite component bean
- descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>expert</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;A short description of the purpose of this
- component. The value of this attribute will be set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>shortDescription</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Defines the implementation of the composite
- component. There must be zero or one of these in a
- composite component markup file. If a
- &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; element
- appears,
- there must be a corresponding
- &lt;code&gt;&amp;lt;composite-implementation&amp;gt;&lt;/code&gt;
- element. If no
- &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; element
- appears,
- the &lt;code&gt;&amp;lt;composite-implementation&amp;gt;&lt;/code&gt;
- element is
- optional. &lt;/p&gt; &lt;/div&gt;
- </description>
- <tag-name>implementation</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.ImplementationHandler</handler-class>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Declares an attribute that may be given to an instance of
- the
- &lt;em&gt;composite component&lt;/em&gt; tag for this composite
- component. There
- may be zero or many of these inside of the
- &lt;code&gt;&amp;lt;composite:interface&lt;/code&gt;&amp;gt;
- section. This element may be
- nested within other &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt;
- elements to
- convey a usage contract that includes nested properties.&lt;/p&gt;
-
- &lt;p&gt;Please see &lt;a href="tld-summary.html#composite_example"&gt;summary
- page&lt;/a&gt; for a usage example.&lt;/p&gt;
-
- &lt;p&gt;The &lt;em&gt;top level component&lt;/em&gt; in which this
- element is
- ultimately nested must be a &lt;code&gt;NamingContainer&lt;/code&gt;.
- There are certain component properties that must not be
- exposed using this element. The motivation for this
- restriction is that the mapping of markup attributes to
- component properties/attributes does not allow for these
- attributes to be set. The following properties must not be
- exposed using this element.&lt;/p&gt;
-
- &lt;ul&gt;
- &lt;li&gt;&lt;p&gt;binding&lt;/p&gt;&lt;/li&gt;
- &lt;li&gt;&lt;p&gt;id&lt;/p&gt;&lt;/li&gt;
- &lt;li&gt;&lt;p&gt;inView&lt;/p&gt;&lt;/li&gt;
- &lt;li&gt;&lt;p&gt;parent&lt;/p&gt;&lt;/li&gt;
- &lt;li&gt;&lt;p&gt;rendered&lt;/p&gt;&lt;/li&gt;
- &lt;li&gt;&lt;p&gt;rendererType&lt;/p&gt;&lt;/li&gt;
- &lt;li&gt;&lt;p&gt;transient&lt;/p&gt;&lt;/li&gt;
- &lt;/ul&gt;
-
- &lt;/div&gt;
- </description>
- <tag-name>attribute</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.AttributeHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The name of the attribute as it must appear on the &lt;em&gt;composite
- component tag&lt;/em&gt; in the &lt;em&gt;using page&lt;/em&gt;.
- If the value of the
- &lt;em&gt;name&lt;/em&gt; attribute is equal to (without the
- quotes)
- &amp;#8220;action&amp;#8221;, &amp;#8221;actionListener&amp;#8221;,
- &amp;#8220;validator&amp;#8221;, or &amp;#8220;valueChangeListener&amp;#8221;,
- the
- action described in &lt;a target="_"
- href="../../../javadocs/javax/faces/application/ViewHandler.html#retargetMethodExpressions(javax.faces.context.FacesContext,%20javax.faces.component.UIComponent)"&gt;ViewHandler.retargetMethodExpressions()&lt;/a&gt;
- must be taken to handle the attribute. In these cases, the
- &lt;code&gt;method-signature&lt;/code&gt; attribute, if present,
- must be ignored as
- its value is derived as described in
- &lt;code&gt;retargetMethodExpressions()&lt;/code&gt;.&lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;If this element has a &lt;code&gt;method-signature&lt;/code&gt;
- attribute, the
- value of the &lt;code&gt;targets&lt;/code&gt; attribute must be
- interpreted as a
- space (not tab) separated list of client ids (relative to the
- &lt;em&gt;top
- level component&lt;/em&gt;) of components within the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. Space is used as
- the delimiter for compatibility with the IDREFS and NMTOKENS
- data types
- from the XML Schema. Each entry in the list must be interpreted
- as the
- id of an inner component to which the &lt;code&gt;MethodExpression&lt;/code&gt;
- from
- the &lt;em&gt;composite component tag&lt;/em&gt; in the &lt;em&gt;using
- page&lt;/em&gt; must be
- applied. If this element has a &lt;code&gt;method-signature&lt;/code&gt;
- attribute,
- but no &lt;code&gt;targets&lt;/code&gt; attribute, the value of
- the
- &lt;code&gt;name&lt;/code&gt; attribute is used as the single
- entry in the list. If
- the value of the &lt;code&gt;name&lt;/code&gt; attribute is &lt;strong&gt;not&lt;/strong&gt;
- one
- of the special values listed in the description of the &lt;code&gt;name
- attribute&lt;/code&gt;, &lt;code&gt;targets&lt;/code&gt; (or its
- derived value) need not
- correspond to the id of an inner component.&lt;/p&gt;
-
- &lt;/div&gt;
-
- </description>
- <name>targets</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;If this attribute is not required, and a
- value is not supplied by the page author, use this as
- the default value.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>default</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The name to display in a tool palette
- containing this component. The value of this attribute will be
- set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>displayName</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;True if the page author must supply a value
- for this attribute.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>required</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Is this a "preferred" component. The value
- of this attribute will be set as the value for this
- property on the &lt;em&gt;composite component bean
- descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>preferred</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Is this component only for expert users?
- The value of this attribute will be set as the value for
- this property on the &lt;em&gt;composite component bean
- descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>expert</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;A short description of the purpose of this
- component. The value of this attribute will be set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>shortDescription</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Declares that this attribute must be a &lt;code&gt;MethodExpression&lt;/code&gt;
- whose method signature is described by the value of this
- attribute. The
- signature must be described using fully qualified class names
- wherever a
- type is required. This attribute is mutually exclusive with the
- "type"
- attribute. If both attributes are present, the
- "method-signature"
- attribute is ignored.&lt;/p&gt;
-
- &lt;p&gt;PENDING: when this file is generated from the
- web-facesuicomponent_2_0.xsd, we will not need to copy the
- content here
- manually.&lt;/p&gt;
-
- &lt;p&gt;Provides the signature of the Java method. The syntax
- of
- the method-signature element is as follows (taken from
- function-signature in web-jsptaglibrary_2_1.xsd):&lt;/p&gt;
-
- &lt;p&gt;MethodSignature ::= ReturnType S MethodName S?
- '(' S? Parameters? S? ')'&lt;/p&gt;
-
- &lt;p&gt;ReturnType ::= Type&lt;/p&gt;
-
- &lt;p&gt;MethodName ::= Identifier&lt;/p&gt;
-
- &lt;p&gt;Parameters ::= Parameter
- | ( Parameter S? ',' S? Parameters )&lt;/p&gt;
-
- &lt;p&gt;Parameter ::= Type&lt;/p&gt;
-
- &lt;p&gt;Where:&lt;/p&gt;
-
- &lt;ul&gt;
-
- &lt;li&gt;&lt;p&gt;Type is a basic type or a fully qualified
- Java class name (including package name),
- as per the 'Type' production in the Java
- Language Specification, Second Edition,
- Chapter 18.&lt;/p&gt;&lt;/li&gt;
-
- &lt;li&gt;&lt;p&gt;Identifier is a Java identifier, as per
- the 'Identifier' production in the Java
- Language Specification, Second
- Edition, Chapter 18.&lt;/p&gt;&lt;/li&gt;
-
- &lt;/ul&gt;
-
- &lt;p&gt;Example:&lt;/p&gt;
-
- &lt;p&gt;&lt;code&gt;java.lang.String nickName(
- java.lang.String, int )&lt;/code&gt;&lt;/p&gt;
-
-
- &lt;/div&gt;
-
- </description>
- <name>method-signature</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Declares that this attribute must be a &lt;code&gt;ValueExpression&lt;/code&gt;
- whose expected type is given by the value of this attribute. If
- not
- specified, and no "method-signature" attribute is present,
- &lt;code&gt;java.lang.Object&lt;/code&gt; is assumed. This
- attribute is mutually
- exclusive with the "type" attribute. If both attributes are
- present, the
- "method-signature" attribute is ignored. &lt;/p&gt; &lt;/div&gt;
-
- </description>
- <name>type</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;Declares that this composite component supports a facet
- with the
- name given by the value of the "name" attribute. &lt;/p&gt;
-
- &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
- href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
- for a usage
- example.&lt;/p&gt;
-
-
- &lt;/div&gt;
- </description>
- <tag-name>facet</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.DeclareFacetHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The name of the attribute as it must appear
- on the &lt;em&gt;composite component tag&lt;/em&gt; in the
- &lt;em&gt;using page&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The name to display in a tool palette
- containing this component. The value of this attribute will be
- set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>displayName</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;True if the page author must supply a facet with this
- name.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>required</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Is this a "preferred" facet. The value
- of this attribute will be set as the value for this
- property on the &lt;em&gt;composite component bean
- descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>preferred</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Is this facet only for expert users?
- The value of this attribute will be set as the value for
- this property on the &lt;em&gt;composite component bean
- descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>expert</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;A short description of the purpose of this
- facet. The value of this attribute will be set as
- the value for this property on the &lt;em&gt;composite
- component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>shortDescription</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;This element is used in the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. The facet with
- the name equal to the value of the name attribute, given by the page
- author in the using page, will be rendered at this point in the
- composite component PDL page. &lt;/p&gt;
-
-
- &lt;p&gt;The implementation of this tag handler must insert a
- component with &lt;code&gt;component-type&lt;/code&gt;
- &lt;code&gt;javax.faces.Output&lt;/code&gt; and &lt;code&gt;renderer-type&lt;/code&gt;
- &lt;code&gt;javax.faces.CompositeFacet&lt;/code&gt; as a
- child at this point in the component tree.&lt;/p&gt;
-
- &lt;p&gt;The implementation of this tag handler must store an
- attribute into
- the created component's attribute map under the key given by the
- value
- of the symbolic constant &lt;code&gt;UIComponent.FACETS_KEY&lt;/code&gt;.
- The value
- for this key must be the evaluated value of the "name" attribute.&lt;/p&gt;
-
- &lt;/div&gt;
- </description>
- <tag-name>renderFacet</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.RenderFacetHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;The value of the name attribute as it must appear on an
- &lt;code&gt;&amp;lt;f:facet&amp;gt;&lt;/code&gt; tag nested
- within the &lt;em&gt;composite
- component tag&lt;/em&gt; in the &lt;em&gt;using page&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;If &lt;code&gt;true&lt;/code&gt;, and there is no such
- facet present on the top
- level component, a &lt;code&gt;TagException&lt;/code&gt; must be
- thrown, containing
- the &lt;code&gt;Location&lt;/code&gt;, the facet name, and a
- localized descriptive
- error message.&lt;/p&gt;
-
- &lt;/div&gt;
-
- </description>
- <name>required</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;This element is used in the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. Any child
- components or template text within the composite component tag in
- the
- using page will be re-parented into the composite component at the
- point
- indicated by this tag's placement within the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. The normal
- use-case for this element is to have only one occurrence within the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. Inserting
- multiple occurrences may cause duplicate id errors. The results are
- undefined if there are multiple occurrences of this element in the
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section.&lt;/p&gt;
-
- &lt;/div&gt;
- </description>
- <tag-name>insertChildren</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.InsertChildrenHandler</handler-class>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Declares that the composite component whose
- contract is declared by the
- &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; in
- which this
- element is nested exposes an implementation of
- &lt;code&gt;ValueHolder&lt;/code&gt; suitable for use as the target
- of
- &lt;em&gt;attached objects&lt;/em&gt; in &lt;em&gt;the using page&lt;/em&gt;.
- Any attached objects suitable for implementations of
- &lt;code&gt;ValueHolder&lt;/code&gt; may be attached to the
- composite
- component. Consider this excerpt from &lt;em&gt;the using
- page&lt;/em&gt;:
- &lt;/p&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;ez:foo&amp;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:converter &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;userid&amp;quot;&lt;/span&gt; binding=&lt;span
- class="st0"&gt;&amp;quot;#{bean.converter}&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:foo&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;Line 2 refers to the
- &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
- declaration on
- line 2 of &lt;code&gt;foo.xhtml&lt;/code&gt;:&lt;/p&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;composite:interface&amp;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;composite:valueHolder &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;userid&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;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;h:inputText &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;userid&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;&lt;/p&gt;
-
- &lt;p&gt;It is possible to declare that a single
- &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
- element should cause multiple
- components within the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section to be the targets of an &lt;em&gt;attached object&lt;/em&gt;
- in the
- using page. Assuming the same &lt;em&gt;using page&lt;/em&gt;
- excerpt as
- above, the revised &lt;em&gt;PDL page&lt;/em&gt; is:&lt;/p&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;composite:interface&amp;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;composite:valueHolder targets=&lt;span
- class="st0"&gt;&amp;quot;userid,password&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;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;h:inputText &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;userid&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;span
- class="sc2"&gt;&amp;lt;h:inputText &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;password&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;/composite:implementation&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;In this case, the "targets" attribute on the
- &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
- element, on line 2 above,
- replaces the "name" attribute in the previous example. "targets" is
- a
- list of ids of client ids (relative to the &lt;em&gt;top level
- component&lt;/em&gt;)
- within the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. In
- this case, "targets" refers to the &lt;code&gt;&amp;lt;h:inputText&amp;gt;&lt;/code&gt;
- components on lines 6 and 7 above.&lt;/p&gt;
-
- &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
- href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
- for a usage
- example.&lt;/p&gt;
-
- &lt;/div&gt;
- </description>
- <tag-name>valueHolder</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.ValueHolderAttachedObjectTargetHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;
- The value of this attribute maps back to the "for" attribute on
- an attachable object
- nested within a composite component. If the "targets" attribute
- is not specified,
- this value also represents the component ID of the target
- component within the
- that the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- ActionListener should be mapped to.
- &lt;/p&gt;
- &lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;If present, this must be a space (not tab) separated
- list of client
- ids (relative to the &lt;em&gt;top level component&lt;/em&gt;)
- of components within
- the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. Space is
- used as the delimiter for compatibility with the IDREFS and
- NMTOKENS
- data types from the XML Schema. &lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>targets</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Declares that the composite component whose
- contract is declared by the
- &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; in
- which this
- element is nested exposes an implementation of
- &lt;code&gt;EditableValueHolder&lt;/code&gt; suitable for use as the
- target of &lt;em&gt;attached objects&lt;/em&gt; in &lt;em&gt;the
- using
- page&lt;/em&gt;. Any attached objects suitable for
- implementations of &lt;code&gt;EditableValueHolder&lt;/code&gt; may
- be
- attached to the composite component.The example from &lt;a
- href="valueHolder.html"&gt;&lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;&lt;/a&gt;
- still applies.
- &lt;/p&gt;
-
- &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
- href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
- for a usage
- example.&lt;/p&gt;
-
- &lt;/div&gt;
- </description>
- <tag-name>editableValueHolder</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.EditableValueHolderAttachedObjectTargetHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;
- The value of this attribute maps back to the "for" attribute on
- an attachable object
- nested within a composite component. If the "targets" attribute
- is not specified,
- this value also represents the component ID of the target
- component within the
- that the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- ActionListener should be mapped to.
- &lt;/p&gt;
- &lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;If present, this must be a space (not tab) separated
- list of client
- ids (relative to the &lt;em&gt;top level component&lt;/em&gt;)
- of components within
- the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. Space is
- used as the delimiter for compatibility with the IDREFS and
- NMTOKENS
- data types from the XML Schema.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>targets</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Declares that the composite component whose
- contract is declared by the
- &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; in
- which this
- element is nested exposes an implementation of
- &lt;code&gt;ActionSource2&lt;/code&gt; suitable for use as the
- target of
- &lt;em&gt;attached objects&lt;/em&gt; in &lt;em&gt;the using page&lt;/em&gt;.
- Any attached objects suitable for implementations of
- &lt;code&gt;ActionSource2&lt;/code&gt; may be attached to the
- composite
- component. Consider this excerpt from &lt;em&gt;the using
- page&lt;/em&gt;:
- &lt;/p&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;ez:loginPanel &lt;span
- class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;loginPanel&amp;quot;&lt;/span&gt;
- model=&lt;span class="st0"&gt;&amp;quot;#{bean}&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:valueChangeListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;username&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
- &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.useridValueChangeListener}&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:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;loginEvent&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; &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.loginEventListener}&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;/div&gt;&lt;/li&gt;
- &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
- class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;cancelEvent&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; &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.cancelEventListener}&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;&amp;nbsp; &lt;span
- class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;allEvents&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; &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.allEventsListener}&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;/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;&lt;/span&gt;/ez:loginPanel&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;The &lt;code&gt;&amp;lt;f:actionListener&amp;gt;&lt;/code&gt;
- elements on lines 4, 7, and 10
- refer to the &lt;em&gt;attached objects&lt;/em&gt; declared on lines
- 2, 3 and 4 below.&lt;/p&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;composite:interface
- &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;loginPanel&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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;loginEvent&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;span
- class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;cancelEvent&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;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
- class="st0"&gt;&amp;quot;allEvents&amp;quot;&lt;/span&gt; targets=&lt;span
- class="st0"&gt;&amp;quot;loginEvent,cancelEvent&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;&lt;span class="sc2"&gt;&lt;span
- class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;
- &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
-
- &lt;p&gt;Most of the concepts from example content from &lt;a
- href="valueHolder.html"&gt;&lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;&lt;/a&gt;
- also applies in the case of
- &lt;code&gt;&amp;lt;composite:actionSource&amp;gt;&lt;/code&gt;.&lt;/p&gt;
-
- &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
- href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
- for a usage
- example.&lt;/p&gt;
-
-
- &lt;/div&gt;
- </description>
- <tag-name>actionSource</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.ActionSource2AttachedObjectTargetHandler</handler-class>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;
- The value of this attribute maps back to the "for" attribute on
- an attachable object
- nested within a composite component. If the "targets" attribute
- is not specified,
- this value also represents the component ID of the target
- component within the
- that the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- ActionListener should be mapped to.
- &lt;/p&gt;
- &lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;If present, this must be a space (not tab) separated
- list of client
- ids (relative to the &lt;em&gt;top level component&lt;/em&gt;)
- of components within
- the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section. Space is
- used as the delimiter for compatibility with the IDREFS and
- NMTOKENS
- data types from the XML Schema.&lt;/p&gt;&lt;/div&gt;
-
- </description>
- <name>targets</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- <tag>
- <description>
-
-
- &lt;div class="changed_added_2_0"&gt;
- &lt;p&gt;Used within a &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
- section,
- within any sub-element of that section, to include XML content not
- defined by this specification. This element can be used to
- incorporate
- &lt;a target="_" href="http://jcp.org/en/jsr/detail?id=276"&gt;JSR-276&lt;/a&gt;
- metadata into a composite component.&lt;/p&gt;
-
- &lt;/div&gt;
- </description>
- <tag-name>extension</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.ExtensionHandler</handler-class>
- </tag>
- <tag>
- <description>
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;The presence of this tag in a
- &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
- section must cause the
- named facet to be taken from the facet map of the &lt;em&gt;top
- level
- component&lt;/em&gt; and inserted as a facet child of the component
- in which
- this element is nested.&lt;/p&gt;
-
- &lt;/div&gt;
-
- </description>
- <tag-name>insertFacet</tag-name>
- <handler-class>com.sun.faces.facelets.tag.composite.InsertFacetHandler</handler-class>
- <attribute>
- <description>
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;The name of the facet child on the &lt;em&gt;top level
- component&lt;/em&gt; which
- must be inserted as a facet child of the component in which this
- element
- is nested.&lt;/p&gt;
-
- &lt;/div&gt;
-
- </description>
- <name>name</name>
- <required>true</required>
- <type>java.lang.String</type>
- </attribute>
- <attribute>
- <description>
-
- &lt;div class="changed_added_2_0"&gt;
-
- &lt;p&gt;If &lt;code&gt;true&lt;/code&gt;, and there is no such
- facet present on the top
- level component, a &lt;code&gt;TagException&lt;/code&gt; must be
- thrown, containing
- the &lt;code&gt;Location&lt;/code&gt;, the facet name, and a
- localized descriptive
- error message.&lt;/p&gt;
-
- &lt;/div&gt;
-
- </description>
- <name>required</name>
- <required>false</required>
- <type>boolean</type>
- </attribute>
- </tag>
-</facelet-taglib>

Back to the top