Hi I am writing this to the users list since i have yet to join the EG.
Ok since I got a bugreport in regarding execute all. I am not sure if
the current behavior we have in both myfaces and mojarra is the same.
Following scenario:
<h:form id="otherform">
<h:inputText id="booga" value="#{executeAll.val1}"/>
<h:commandLink id="booga1" value="press me1"
action="#{executeAll.doNav1}">
<f:ajax render="otherform :centerForm" execute="@all"/>
</h:commandLink>
</h:form>
<h:form id="centerForm">
<h:inputText id="booga2" value="#{executeAll.val2}"/>
<h:commandLink id="booga3" value="press me1"
action="#{executeAll.doNav2}">
<f:ajax render=":otherform centerForm" execute="@all"/>
</h:commandLink>
</h:form>
Now what happens is if you press one of the commandLinks, following
parameters are sent:
javax.faces.ViewState -3392969925894016450:4275843749381936961
javax.faces.behavior.even... action
javax.faces.partial.ajax true
javax.faces.partial.event click
javax.faces.partial.execu... @all
javax.faces.partial.rende... otherform centerForm
javax.faces.source otherform:booga1
otherform otherform
otherform:booga val1 dfdasf
So what happens now is that the issuing forms values are encoded only,
but the server then executes the entire ViewRoot. Hence the value of
the second form always resets despite being changed. By now both
implementations behave the same and I assume given the state of the
spec the behavior is valid as is. However:
One of my users raised the valid question in a bugreport, shouldn´t
send exceute @all all form values down to the server.
I am undecided given this point of view if execte="@all even makes
sense.
Theoretically if we would send all values down the server, then we run
into the issue that we do not have any viewroot information on the
client (another issue regarding the client side viewstates also has).
Double names also could be an issue, but this can be offloaded to the
users.
So what is your opinion regarding all this.
Werner Punz
Apache MyFaces