The f:ajax tag works much like the commandButton and commandLink tags do. That is, making it immediate jumps ahead of the validation and bean updating. In the case of commandButton and commandLink, in fact, the validation and bean updating are short-circuited and do not happen at all, which is useful, for example when doing a dialog view with a Cancel button, where you want to discard all inputs and navigate somewhere else.
In AJAX, you don't navigate, and the official docs say
Autodocs wrote:
If "true" behavior events generated from this behavior are broadcast during Apply Request Values phase. Otherwise, the events will be broadcast during Invoke Aplications phase*
The autodocs for
JSF, however, tend to be more obsessed with stuff that only someone implementing their own version of JSF would care about. Or worse, get incorrectly inherited because the developer couldn't be bothered to override with class-specific information. The autodoc documentation for the application programmer is often incomplete and ambiguous.
Of course, the ultimate and authoritative definitions are in the
JEE spec itself, but that can require time, patience, and some serious decoding.
In practical terms, I'd
hope that the immediate attribute on the ajax tag behaves like the immediate attribute on a command tag does. Although a lot less necessary, since ajax tags can limit what form values actually get processed anyway.
---
* Also, they cannot spell "Aplications"
(sic).