[jsr-314-open] Ajax rendering of components among compositions?

Andy Schwartz andy.schwartz at ORACLE.COM
Mon May 25 08:27:21 EDT 2009


Hey Dan -

Dan Allen wrote On 5/24/2009 11:32 PM ET:
> I still don't understand why the composite component is not acting 
> like a naming container. I mean, if I assign an id to the composite 
> component:
>
> <p:edit id="username"/>
>
> Then it just seems wrong to me that it isn't rendered in the output. 
> However, if we are saying that the composite component must have:
>
> <div id="#{cc.clientId}">
> ...
> </div>

I suspect that this isn't so much a composite component limitation so 
much as a general isssue with Facelets handling of static 
(non-component) content.  I haven't tested this out yet, but I am 
guessing that the following trivial example displays the same behavior:

  <f:subview id="namingContainer">
    <div id="foo"></div>
  </f:subview>

Facelets (actually, JSP too) will end up treating the <div> element as 
raw HTML content - and as such will simply blast this content out rather 
than creating a UIComponent that can participate in naming container id 
manipulation.

On the other hand, if you've got:

  <f:subview id="namingContainer">
    <h:panelGroup id="foo"/>
  </f:subview>


Or a composite component:

<p:edit id="username"/>

Containing:

    <h:panelGroup id="foo"/>

Then naming container id resolution comes into play.

I don't know that there is anything wrong with this behavior in general, 
though I do agree with your concern that composite component authors are 
going to have no clue how best to specify the id in their rendered content.


>
> (or something of the sort), then we need to highlight this point in 
> big *bold* letters.

Yep.

> Otherwise, every time a newcomer creates a composite component that 
> he/she wants to update with Ajax, they are going to going through this 
> trial and error lesson.

I agree.  I am not sure exactly how to go about improving this situation 
in 2.1, but for 2.0 the technique that you described needs to be 
encouraged as a best practice.

Andy

>
> -Dan
>




More information about the jsr-314-open-mirror mailing list