I think you are running into the &quot;composite component gets an id in the component tree but is not represented in the rendered output problem&quot;. I&#39;ve been discussing this problem in private mailings with Ryan and Andy...and now that you have observed it too I think it is something we need to address.<br>
<br>Here is the story I recounted. The summary is that you cannot update a composite component. You can only update a container within a composite component, which may have the same id as the component itself.<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">
The malformedXML statement is the error sent by the catch block that surrounds the DOM update. I put a breakpoint there and discovered the underlying message:<br><br>&quot;username not found&quot;<br><br>So it wasn&#39;t able to find the id on the page to update. To give you context, here is the response XML:<br>
<br>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br>&lt;partial-response&gt;&lt;changes&gt;&lt;update id=&quot;username&quot;&gt;&lt;![CDATA[<br>  &lt;div class=&quot;entry&quot;&gt;&lt;label for=&quot;username:input&quot; class=&quot;label errors&quot;&gt;<br>
  Username:&lt;span class=&quot;required&quot;&gt;*&lt;/span&gt;&lt;/label&gt;<br>  &lt;span class=&quot;input errors&quot;&gt;&lt;input id=&quot;username:input&quot; type=&quot;text&quot; name=&quot;username:input&quot; value=&quot;aa&quot; onblur=&quot;mojarra.ab(this,event,&#39;blur&#39;,0,&#39;username&#39;)&quot; /&gt;<br>
 &lt;/span&gt;&lt;span class=&quot;error errors&quot;&gt;size must be between 3 and 15&lt;/span&gt;<br> &lt;/div&gt;]]&gt;&lt;/update&gt;&lt;update id=&quot;javax.faces.ViewState&quot;&gt;&lt;![CDATA[-3748785966430840586:-6352458055258675720]]&gt;&lt;/update&gt;&lt;/changes&gt;&lt;/partial-response&gt;<br>
<br>As you can see, I have a div around my input (the client id of input is &quot;input&quot;). The div is defined by a composite component named p:edit as follows:<br><br>&lt;p:edit id=&quot;username&quot;&gt;&lt;h:inputText id=&quot;input&quot; value=&quot;...&quot;/&gt;&lt;/p:edit&gt;<br>
<br>The simplified template looks like:<br><br>&lt;div class=&quot;entry&quot;&gt;<br>   &lt;comp:insertChildren/&gt;<br>&lt;/div&gt;<br><br>The problem is, while the username id is represented in the tree (as the composite component), it&#39;s not represented in the rendered output. The composite component is a non-rendering container. That&#39;s why the update script cannot locate the DOM node to update.<br>
<br>To get it to work, I had to represent the id of the component template somewhere in my template...most naturally on the wrapping div.<br><br>&lt;div class=&quot;entry&quot; id=&quot;#{cc.clientId}&quot;&gt;<br>  &lt;comp:insertChildren/&gt;<br>
&lt;/div&gt;<br><br>Is this an unwritten rule? Or should the id automatically be assigned to the first child of the composite component. I can see people getting easily confused over this.</blockquote><div><br>Developers are going to trip all over this subtlety, I&#39;m sure of it.<br>
</div><br><div class="gmail_quote">On Sat, May 23, 2009 at 1:26 PM, David Geary <span dir="ltr">&lt;<a href="mailto:clarity.training@gmail.com">clarity.training@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I have a view composed of a template, and a handful of compositions. In one of those compositions, I want to trigger an ajax request with f:ajax, and I want to render a component in a different composition (but ultimately in the same page). That doesn&#39;t seem to work.<br>

<br>To be a little more explicit, I have a menu, implemented with a composition, from which I launch an ajax request. When the request returns, I want to render a single component in another composition. However, when I try to do that, JSF complains that the component id cannot be found, when in fact, the component is in the page, and is even in the same naming container.<br>

<br>I suspect that f:ajax is looking for the component id before the page is fully constructed, and therefore only sees components in the same composition.<br><br>This should work, correct? If I cannot effectively use ajax across compositions in the same page, then that makes templating a lot less attractive.<br>

<br>Thanks,<br><font color="#888888"><br><br>david<br>
</font></blockquote></div><br>-Dan<br clear="all"><br>-- <br>Dan Allen<br>Senior Software Engineer, Red Hat | Author of Seam in Action<br><br><a href="http://mojavelinux.com">http://mojavelinux.com</a><br><a href="http://mojavelinux.com/seaminaction">http://mojavelinux.com/seaminaction</a><br>
<a href="http://in.relation.to/Bloggers/Dan">http://in.relation.to/Bloggers/Dan</a><br><br>NOTE: While I make a strong effort to keep up with my email on a daily<br>basis, personal or other work matters can sometimes keep me away<br>
from my email. If you contact me, but don&#39;t hear back for more than a week,<br>it is very likely that I am excessively backlogged or the message was<br>caught in the spam filters.  Please don&#39;t hesitate to resend a message if<br>
you feel that it did not reach my attention.<br>