Hi,<br>I just did some further digging around in the code specially since I am currently doing some optimisation stuff in that area in myfaces. And I came to the conclusion that Mojarras behavior breaks the spec.<br><br>The reason. The spec itself leaves it open, but we have an implicit @this parameter which can be set both in execute and in render<br>
and if this @this parameter is set then the issuing client id has to be set in the list where it is set.<br>So the spec clearly states here that @this is a placeholder for the executing element. If is allowed in exec, appending automatically the issuing client id is pointless.<br>
<br>Werner<br><br><br><div class="gmail_quote">On Wed, Aug 4, 2010 at 9:31 AM, Martin Marinschek <span dir="ltr">&lt;<a href="mailto:mmarinschek@apache.org">mmarinschek@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi Werner,<br>
<br>
I think some clarification would certainly be good there (especially<br>
as the language doesn&#39;t really say what client identifiers should be<br>
present, plus once talks about client identifiers, and once about<br>
identifiers only). My POV: for now, Mojarra and MyFaces should behave<br>
the same. The sentence following the one that you highlighted in bold:<br>
<br>
&quot;...with the name javax.faces.partial.execute and the value as the<br>
identifier of the element that caused this request...&quot;<br>
<br>
indicates to me that the triggering client id should be there.<br>
<br>
best regards,<br>
<br>
Martin<br>
<div><div></div><div class="h5"><br>
On 8/3/10, Werner Punz &lt;<a href="mailto:werner.punz@gmail.com">werner.punz@gmail.com</a>&gt; wrote:<br>
&gt; Hello while doing another round of testing and optimisations I noticed a<br>
&gt; slight difference in the implementations of the request of mojarra and<br>
&gt; myfaces which opened an area where the spec probably is unclear:<br>
&gt;<br>
&gt; Following case:<br>
&gt;<br>
&gt;  &lt;h:panelGroup id=&quot;bla&quot;&gt;<br>
&gt;<br>
&gt;                        &lt;h:inputText id=&quot;inputbla&quot;<br>
&gt; value=&quot;#{myBean2.searchTerm}&quot; /&gt;<br>
&gt;<br>
&gt;                        &lt;h:commandLink value=&quot;Press me for more action&quot;<br>
&gt; action=&quot;#{myBean2.doSearch}&quot;&gt;<br>
&gt;                            &lt;f:ajax execute=&quot;bla&quot; render=&quot;content&quot;/&gt;<br>
&gt;                        &lt;/h:commandLink&gt;<br>
&gt;                    &lt;/h:panelGroup&gt;<br>
&gt;<br>
&gt; now results in following post data:<br>
&gt;<br>
&gt; Mojarra:<br>
&gt;<br>
&gt; form2 form2<br>
&gt; form2:inputbla<br>
&gt; javax.faces.ViewState 6697453697014869722:-1090088301633916042<br>
&gt; javax.faces.behavior.even...  action<br>
&gt; javax.faces.partial.ajax      true<br>
&gt; javax.faces.partial.event     click<br>
&gt; javax.faces.partial.execu...  form2:j_idt8 form2:bla<br>
&gt; javax.faces.partial.rende...  form2:content<br>
&gt; javax.faces.source    form2:j_idt8<br>
&gt;<br>
&gt;<br>
&gt; in myfaces<br>
&gt; form2:inputbla<br>
&gt; form2_SUBMIT  1<br>
&gt; javax.faces.ViewState EmWJgKYkJoTEWDCzpUwZQR3Ek94rGnxK1V6NEZgO6yDgPANeOc1wplJjDYezu2cx9aQ7ZSKNPyGY<br>
&gt; L8P9y5DwH2codFvGPjklD04wuxG4XXTPutNww3pdzIsMkw0=<br>
&gt; javax.faces.behavior.even...  action<br>
&gt; javax.faces.partial.ajax      true<br>
&gt; javax.faces.partial.event     click<br>
&gt; javax.faces.partial.execu...  form2:bla<br>
&gt; javax.faces.partial.rende...  form2:content<br>
&gt; javax.faces.source    form2:j_id1980473354_760ba132<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; While most of the differeing data is mostly implementation specific and<br>
&gt; therefor it is not that interesting following is:<br>
&gt;<br>
&gt; javax.faces.partial.execu...  form2:j_idt8 form2:bla<br>
&gt;<br>
&gt;<br>
&gt; compared to<br>
&gt;<br>
&gt; javax.faces.partial.execu...  form2:bla<br>
&gt;<br>
&gt;<br>
&gt; Now the difference is that Mojarra adds the executing element as it seems<br>
&gt; while MyFaces does not.<br>
&gt; The second interesting fact is following definition from the spec:<br>
&gt;<br>
&gt;<br>
&gt;    - Determine additional arguments (if any) from the options argument. If<br>
&gt;    options.execute exists:<br>
&gt;       - If the keyword @none is present, do not create and send the post<br>
&gt;       data argument javax.faces.partial.execute.<br>
&gt;       - If the keyword @all is present, create the post data argument with<br>
&gt;       the name javax.faces.partial.execute and the value @all.<br>
&gt;       - *Otherwise, there are specific identifiers that need to be sent.<br>
&gt;       Create the post data argument with the name<br>
&gt;       javax.faces.partial.execute and the value as a space delimited<br>
</div></div>&gt; stringof client identifiers.<br>
<div class="im">&gt;       *<br>
&gt;    - If options.execute does not exist, create the post data argument with<br>
&gt;    the name javax.faces.partial.execute and the value as the identifier of<br>
&gt;    the element that caused this request.<br>
&gt;<br>
&gt;<br>
&gt; Which means exactly, that I am not sure which behavior is correct and which<br>
&gt; not. My personal guess is that both implementations are<br>
&gt; correct because the spec clearly leaves it open if the issuing element also<br>
&gt; can be added to the exec list unless no exec list is given at all.<br>
&gt; But that is merely an assumption on my side here.<br>
&gt; Any ideas on this.<br>
&gt;<br>
&gt; Werner<br>
&gt;<br>
<br>
<br>
</div><div><div></div><div class="h5">--<br>
<br>
<a href="http://www.irian.at" target="_blank">http://www.irian.at</a><br>
<br>
Your JSF powerhouse -<br>
JSF Consulting, Development and<br>
Courses in English and German<br>
<br>
Professional Support for Apache MyFaces<br>
</div></div></blockquote></div><br>