have you tried using a <h:commandLink> instead of an <a4j:commandLink>? I experience a similar behavior when using the <a4j:commandLink> nested in a form (if you don't need a form try to put the <a4j:commandLink> outside of it).
Moreover, you could put a <a4j:region> around the things you want to submit and add execute="@region" to the commandLink.
Thanks firstly, and your answer is very useful for me, and I think our project seems need more than one form in the same page.
Do you have relevant experience about this? I think if jsf2 has this issue, all kinds of faces need to face it, would you remmend some approaches?
Thanks, and what IIya said is right