[jsr-314-open-mirror] [jsr-314-open] jsf.ajax.request: Bug or expected behavior?

Werner Punz werner.punz at gmail.com
Tue Aug 3 10:45:11 EDT 2010


Hello while doing another round of testing and optimisations I noticed a
slight difference in the implementations of the request of mojarra and
myfaces which opened an area where the spec probably is unclear:

Following case:

 <h:panelGroup id="bla">

                       <h:inputText id="inputbla"
value="#{myBean2.searchTerm}" />

                       <h:commandLink value="Press me for more action"
action="#{myBean2.doSearch}">
                           <f:ajax execute="bla" render="content"/>
                       </h:commandLink>
                   </h:panelGroup>

now results in following post data:

Mojarra:

form2	form2
form2:inputbla	
javax.faces.ViewState	6697453697014869722:-1090088301633916042
javax.faces.behavior.even...	action
javax.faces.partial.ajax	true
javax.faces.partial.event	click
javax.faces.partial.execu...	form2:j_idt8 form2:bla
javax.faces.partial.rende...	form2:content
javax.faces.source	form2:j_idt8


in myfaces
form2:inputbla	
form2_SUBMIT	1
javax.faces.ViewState	EmWJgKYkJoTEWDCzpUwZQR3Ek94rGnxK1V6NEZgO6yDgPANeOc1wplJjDYezu2cx9aQ7ZSKNPyGY
L8P9y5DwH2codFvGPjklD04wuxG4XXTPutNww3pdzIsMkw0=
javax.faces.behavior.even...	action
javax.faces.partial.ajax	true
javax.faces.partial.event	click
javax.faces.partial.execu...	form2:bla
javax.faces.partial.rende...	form2:content
javax.faces.source	form2:j_id1980473354_760ba132



While most of the differeing data is mostly implementation specific and
therefor it is not that interesting following is:

javax.faces.partial.execu...	form2:j_idt8 form2:bla


compared to

javax.faces.partial.execu...	form2:bla


Now the difference is that Mojarra adds the executing element as it seems
while MyFaces does not.
The second interesting fact is following definition from the spec:


   - Determine additional arguments (if any) from the options argument. If
   options.execute exists:
      - If the keyword @none is present, do not create and send the post
      data argument javax.faces.partial.execute.
      - If the keyword @all is present, create the post data argument with
      the name javax.faces.partial.execute and the value @all.
      - *Otherwise, there are specific identifiers that need to be sent.
      Create the post data argument with the name
      javax.faces.partial.execute and the value as a space delimited
stringof client identifiers.
      *
   - If options.execute does not exist, create the post data argument with
   the name javax.faces.partial.execute and the value as the identifier of
   the element that caused this request.


Which means exactly, that I am not sure which behavior is correct and which
not. My personal guess is that both implementations are
correct because the spec clearly leaves it open if the issuing element also
can be added to the exec list unless no exec list is given at all.
But that is merely an assumption on my side here.
Any ideas on this.

Werner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jsr-314-open-mirror/attachments/20100803/8e6151f8/attachment-0002.html 


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