extends the live cycle for request scope beans. In general, each Ajax request works inside the own request scope. Therefore, the state of the component tree rendered based on the variable from one request scope does not correspond to the state of the same tree processed during the next Ajax request. This causes one of the most widespread problem when the form elements (buttons or fields) can't be correctly proceeded with Ajax if the 'rendered' attribute is mapped to the request scoped variable
Using the session scope variables solves the above mentioned problem. However, using a session scope might be inappropriate from the architectural point of view. a4j:keepAlive allows to reuse the same value for a request scope bean between several Ajax requests.
beanName attribute references to a request scope bean name you'd like to re-use during the Ajax requests.
Impertinence sample will misadvise an user, so I think Seam dev team should update your booking example.
But the stateful bean can't be bind to request scope.
Anyone can give me a suggestion?