In JSF development, and attribute called Immediate pops up sporadically.
It has always been a source of confusion of myself and others around me. Rather than trying to explain its meaning in the post, I will redirect the reader to the best article i have ever read about this issue,
In essense, the immediate behaviour has to be studied for Input Items seperately from Command items. In Input Items, immediate = true, effectively executes the validation, conversion and events queueing at the end of the apply-request phase. If an error occurs, the rest of the lifecycle is skipped and the Render phase is executed (meaning that non-immediate input items wont be checked). For Command Button, immediate=true means that the action listener or other action events are executed at the end of the apply-request (before, any validation on non - immediate items and before update model). If the event processing returns a non-null navigation string, the lifecycle proceeds to the render-response phase, effectively short-circuiting all other component's lifecycle processing. if the even processing returns null navigation string, then normal processing of lifecycle continues.