There is a <composite:clientBehavior> 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"><<a href="mailto:asmirnov@exadel.com">asmirnov@exadel.com</a>></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 <composite:clientBehavior> tag with attributes: 'name' -<br>
the virtual event name that composite component has.<br>
'default' "true/false" defines the default event that is enclosed<br>
<f:ajax> tag serves if 'event' attribute was omited.<br>
'event' - the real event name for target component.<br>
'targets' - space-delimited list of component id's for which composite<br>
component behavior or <f:ajax> tag will be redirected.<br>
<br>
The model with 'for' attribute was the first implementation but it was<br>
replaced wit 'virtual' event model.<br>
<div><div></div><div class="h5"><br>
Andy Schwartz wrote:<br>
> David -<br>
><br>
> David Geary wrote On 5/24/2009 5:55 PM ET:<br>
>> For JSF 2, we added a "for" attribute to f:actionListener,<br>
>> f:converter, etc., but we don't have a "for" attribute for <f:ajax>.<br>
>> AFAICT, that means that although you can attach listeners, validators,<br>
>> converters, etc. to a component contained in a composite component,<br>
>> you cannot attach Ajax functionality.<br>
>><br>
>> Why is that? Is it an oversight, or is there some compelling technical<br>
>> reason to disallow adding Ajax behavior to components contained in<br>
>> composites?<br>
><br>
> We definitely intended to support this, though instead of exposing a<br>
> "for" attribute on <f:ajax>, we wanted to leverage the fact that<br>
> behaviors already have a targeting mechanism in the "event" name. The<br>
> idea was that a composite component would, like any other<br>
> ClientBehaviorHolder, expose a set of logical event names that behaviors<br>
> can be attached to. So, for example, assuming a composite component<br>
> included "OK" and "Cancel" buttons and wanted to allow the user to<br>
> attach action behaviors to these, the composite component might surface<br>
> "okAction" and "cancelAction" event names, allowing the page author to do:<br>
><br>
> <foo:someComposite><br>
> <f:ajax event="okAction"/><br>
> <f:ajax event="cancelAction"/><br>
> </foo:someComposite><br>
><br>
> I know that Alexander did the implementation work to get this up and<br>
> running. However, I do not see any pdldoc for the composite tag that<br>
> the composite component author uses to specify the supported client<br>
> behavior event names (composite:clientBehavior I believe).<br>
><br>
> Alex, Roger -<br>
><br>
> Did this make it into 2.0?<br>
><br>
> Andy<br>
><br>
>><br>
>> Thanks,<br>
>><br>
>><br>
>> david<br>
</div></div></blockquote></div><br></div></div>