[jsr-314-open] Ajax rendering of components among compositions?
Jim Driscoll
Jim.Driscoll at SUN.COM
Sun May 24 20:18:32 EDT 2009
Hi David -
Yeah, as Dan says, the ajax tag needs to use the actual rendered id.
And so yes, as soon as you put it in a composite component, you need to
qualify the id with the cc.clientId. I've got no idea why the absolute
id doesn't work - except that it's quite possible that the absolute id
changed between generations of the page.
I've pointed you there before, but look at jsf-demo/ajax-switchlist for
an example that puts an ajax tag inside a composite component. I'm
going to crawl through that whole example in my JSF BOF at JavaOne this
year with Ryan.
See jsf-demo/basic-ajax-edit for an example that puts jsf.ajax.request
calls into a separate javascript file, and then puts that in a composite
component as well.
Jim
On 5/24/09 4:50 PM, David Geary wrote:
> 2009/5/24 Dan Allen <dan.j.allen at gmail.com <mailto:dan.j.allen at gmail.com>>
>
>
> All I've done is cut the zoom prompt and menu from the original
> file, and pasted it into zoomLevelControl.xhtml.
>
> However, now when I change the zoom level menu, I get an error:
>
> <f:ajax> contains an unknown id 'image'
>
>
> According to the AjaxBehaviorRenderer:
>
> /**
> * Attempt to find the component assuming the ID is relative to the
> * nearest naming container. If not found, then search for the
> component
> * using an absolute component expression.
> */
>
> My guess is that the components within the composite component are
> considered to be within a naming container, isolating them from your
> image component. The strange part, though, is that the composite
> component is not acting like a naming container as I observed. To
> fix your problem w/ the current implementation, you have to use an
> absolute id to the image component (I would guess). But yeah, this
> is a very confusing situation for developers.
>
>
> Even that doesn't seem to work. I loaded the page and copied the
> absolute id, like this:
>
> <f:ajax
> render="form:j_id1186681689_16ef8569:0:j_id1186681689_16ef8513:j_id-1105909415_41ead6fe:image"/>
>
> And I receive this ugliness for my trouble:
>
> <f:ajax> contains an unknown id
> 'form:j_id1186681689_16ef8569:0:j_id1186681689_16ef8513:j_id-1105909415_41ead6fe:image'
>
> Frankly, for JSF 2.1, I would like to see us go to an XPath-like
> syntax (or jQuery) to find components because component IDs in JSF
> just plain suck.
>
>
> Yup, I agree wholeheartedly, but we need to make it easy to do Ajax
> rendering across composite components for JSF 2.0. IMO, composite
> components are by far the single most kickass feature of JSF 2, and if
> they're crippled, we're gonna get some bad press.
>
>
> david
>
>
>
> -Dan
>
> --
> Dan Allen
> Senior Software Engineer, Red Hat | Author of Seam in Action
>
> http://mojavelinux.com
> http://mojavelinux.com/seaminaction
> http://in.relation.to/Bloggers/Dan
>
> NOTE: While I make a strong effort to keep up with my email on a daily
> basis, personal or other work matters can sometimes keep me away
> from my email. If you contact me, but don't hear back for more than
> a week,
> it is very likely that I am excessively backlogged or the message was
> caught in the spam filters. Please don't hesitate to resend a
> message if
> you feel that it did not reach my attention.
>
>
More information about the jsr-314-open-mirror
mailing list