Passing values from one page to another is never a very trivial thing to do in JSF 1.2. We can use either the request scope or the session scope to temporarily store the values that we want to pass. Each approach has its own limitations. The request scope gets cleared after every request. This may be too soon in some cases—for example, when redirection is used. The session scope stays there as long as the user has an open session. But this also means that we sometimes have to care about cleaning up things we’ve stored in the session scope. Additionally, it means that the user cannot use two browser windows (or tabs) with different contents, unless he uses a browser that creates a new session for every tab or window.
To solve these problems, the Trinidad project introduced an extra scope—the page flow scope. This scope lives longer than the request scope, but is limited to a single page flow.