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"><<a href="mailto:mmarinschek@apache.org">mmarinschek@apache.org</a>></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'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>
"...with the name javax.faces.partial.execute and the value as the<br>
identifier of the element that caused this request..."<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 <<a href="mailto:werner.punz@gmail.com">werner.punz@gmail.com</a>> wrote:<br>
> Hello while doing another round of testing and optimisations I noticed a<br>
> slight difference in the implementations of the request of mojarra and<br>
> myfaces which opened an area where the spec probably is unclear:<br>
><br>
> Following case:<br>
><br>
> <h:panelGroup id="bla"><br>
><br>
> <h:inputText id="inputbla"<br>
> value="#{myBean2.searchTerm}" /><br>
><br>
> <h:commandLink value="Press me for more action"<br>
> action="#{myBean2.doSearch}"><br>
> <f:ajax execute="bla" render="content"/><br>
> </h:commandLink><br>
> </h:panelGroup><br>
><br>
> now results in following post data:<br>
><br>
> Mojarra:<br>
><br>
> form2 form2<br>
> form2:inputbla<br>
> javax.faces.ViewState 6697453697014869722:-1090088301633916042<br>
> javax.faces.behavior.even... action<br>
> javax.faces.partial.ajax true<br>
> javax.faces.partial.event click<br>
> javax.faces.partial.execu... form2:j_idt8 form2:bla<br>
> javax.faces.partial.rende... form2:content<br>
> javax.faces.source form2:j_idt8<br>
><br>
><br>
> in myfaces<br>
> form2:inputbla<br>
> form2_SUBMIT 1<br>
> javax.faces.ViewState EmWJgKYkJoTEWDCzpUwZQR3Ek94rGnxK1V6NEZgO6yDgPANeOc1wplJjDYezu2cx9aQ7ZSKNPyGY<br>
> L8P9y5DwH2codFvGPjklD04wuxG4XXTPutNww3pdzIsMkw0=<br>
> javax.faces.behavior.even... action<br>
> javax.faces.partial.ajax true<br>
> javax.faces.partial.event click<br>
> javax.faces.partial.execu... form2:bla<br>
> javax.faces.partial.rende... form2:content<br>
> javax.faces.source form2:j_id1980473354_760ba132<br>
><br>
><br>
><br>
> While most of the differeing data is mostly implementation specific and<br>
> therefor it is not that interesting following is:<br>
><br>
> javax.faces.partial.execu... form2:j_idt8 form2:bla<br>
><br>
><br>
> compared to<br>
><br>
> javax.faces.partial.execu... form2:bla<br>
><br>
><br>
> Now the difference is that Mojarra adds the executing element as it seems<br>
> while MyFaces does not.<br>
> The second interesting fact is following definition from the spec:<br>
><br>
><br>
> - Determine additional arguments (if any) from the options argument. If<br>
> options.execute exists:<br>
> - If the keyword @none is present, do not create and send the post<br>
> data argument javax.faces.partial.execute.<br>
> - If the keyword @all is present, create the post data argument with<br>
> the name javax.faces.partial.execute and the value @all.<br>
> - *Otherwise, there are specific identifiers that need to be sent.<br>
> Create the post data argument with the name<br>
> javax.faces.partial.execute and the value as a space delimited<br>
</div></div>> stringof client identifiers.<br>
<div class="im">> *<br>
> - If options.execute does not exist, create the post data argument with<br>
> the name javax.faces.partial.execute and the value as the identifier of<br>
> the element that caused this request.<br>
><br>
><br>
> Which means exactly, that I am not sure which behavior is correct and which<br>
> not. My personal guess is that both implementations are<br>
> correct because the spec clearly leaves it open if the issuing element also<br>
> can be added to the exec list unless no exec list is given at all.<br>
> But that is merely an assumption on my side here.<br>
> Any ideas on this.<br>
><br>
> Werner<br>
><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>