There is a &lt;composite:clientBehavior&gt; tag in the 2.0 version of JSF that comes with GlassFish, and it appears to work as advertised by Alexandr and Andy below.<div><br></div><div>But, as Alexandr points out, it’s not documented in the PDL docs, nor could I find any mention of it in the spec (or Ed’s book, either).</div>
<div><br></div><div>This is a vital tag that lets page authors attach ajax functionality to components within composite components. I see no reason why it should not be documented.</div><div><br></div><div>Does anyone know why this tag was not documented in the first place, or what the plans are for its future? Anyone know if it works with MyFaces 2.0?</div>
<div><br></div><div>If there’s not a compelling reason for blacklisting it from the docs, can we document it?</div><div><br></div><div>Thanks,</div><div><br></div><div><br></div><div>david<br><div><br></div><div><br><br><div class="gmail_quote">
2009/5/26 Alexandr Smirnov <span dir="ltr">&lt;<a href="mailto:asmirnov@exadel.com">asmirnov@exadel.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Sure, the composite client event tags are not included in the PDL doc.<br>
There is one            &lt;composite:clientBehavior&gt; tag with attributes: &#39;name&#39; -<br>
the virtual event name that composite component has.<br>
&#39;default&#39; &quot;true/false&quot; defines the default event that is enclosed<br>
&lt;f:ajax&gt; tag serves if &#39;event&#39; attribute was omited.<br>
&#39;event&#39; - the real event name for target component.<br>
&#39;targets&#39; - space-delimited list of component id&#39;s for which composite<br>
component behavior or &lt;f:ajax&gt; tag will be redirected.<br>
<br>
The model with &#39;for&#39; attribute was the first implementation but it was<br>
replaced wit &#39;virtual&#39; event model.<br>
<div><div></div><div class="h5"><br>
Andy Schwartz wrote:<br>
&gt; David -<br>
&gt;<br>
&gt; David Geary wrote On 5/24/2009 5:55 PM ET:<br>
&gt;&gt; For JSF 2, we added a &quot;for&quot; attribute to f:actionListener,<br>
&gt;&gt; f:converter, etc., but we don&#39;t have a &quot;for&quot; attribute for &lt;f:ajax&gt;.<br>
&gt;&gt; AFAICT, that means that although you can attach listeners, validators,<br>
&gt;&gt; converters, etc. to a component contained in a composite component,<br>
&gt;&gt; you cannot attach Ajax functionality.<br>
&gt;&gt;<br>
&gt;&gt; Why is that? Is it an oversight, or is there some compelling technical<br>
&gt;&gt; reason to disallow adding Ajax behavior to components contained in<br>
&gt;&gt; composites?<br>
&gt;<br>
&gt; We definitely intended to support this, though instead of exposing a<br>
&gt; &quot;for&quot; attribute on &lt;f:ajax&gt;, we wanted to leverage the fact that<br>
&gt; behaviors already have a targeting mechanism in the &quot;event&quot; name.  The<br>
&gt; idea was that a composite component would, like any other<br>
&gt; ClientBehaviorHolder, expose a set of logical event names that behaviors<br>
&gt; can be attached to.  So, for example, assuming a composite component<br>
&gt; included &quot;OK&quot; and &quot;Cancel&quot; buttons and wanted to allow the user to<br>
&gt; attach action behaviors to these, the composite component might surface<br>
&gt; &quot;okAction&quot; and &quot;cancelAction&quot; event names, allowing the page author to do:<br>
&gt;<br>
&gt;  &lt;foo:someComposite&gt;<br>
&gt;    &lt;f:ajax event=&quot;okAction&quot;/&gt;<br>
&gt;    &lt;f:ajax event=&quot;cancelAction&quot;/&gt;<br>
&gt;  &lt;/foo:someComposite&gt;<br>
&gt;<br>
&gt; I know that Alexander did the implementation work to get this up and<br>
&gt; running.  However, I do not see any pdldoc for the composite tag that<br>
&gt; the composite component author uses to specify the supported client<br>
&gt; behavior event names (composite:clientBehavior I believe).<br>
&gt;<br>
&gt; Alex, Roger -<br>
&gt;<br>
&gt; Did this make it into 2.0?<br>
&gt;<br>
&gt; Andy<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; david<br>
</div></div></blockquote></div><br></div></div>