Is it possible for you to start the conversation as part of the navigation to the page, either in the link <s:link propagation="begin"/> or in the navigation rules?
That way your ajax requests wont trigger the page action.
Thanks for the reply Eirik.
I figured out what was going on. I needed to wrap the one control in its own a:region so that the rest of the form values would be isolated, because they weren't valid so the update-model phase wasn't happening...
Building the perfect AJAX form is something I'm still learning.
I was also having this problem, your method seems to be working. Thanks
Can't you achieve that with ajaxSingle=
Here's another AJAX / conversation problem:
The user navigates over to my wonderful form. The phone rings, and then he goes out to get lunch, and then he comes back and starts interacting with it.
And what shows up in the logs is:
04:51:10,958 INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed. sourceId=null[severity=(WARN 1), summary=(The conversation ended, timed out or was processing another request), detail=(The conversation ended, timed out or was processing another request)]
I understand perfectly what's causing that; the convo has timed out, meanwhile A4J is trying to send a request that references that convo.
What to do about this?
What I do is have my global error messages inside an Ajax4JSF panel which is set to always reRender after any ajax request:
<a:outputPanel ajaxRendered="true"> ... </a:outputPanel>
This is at the top of all my pages, and if an error like this occurs, at least the user will see the FacesMessage.