"Creating a Wizard with Visualforce Pages"
http://www.salesforce.com/us/developer/docs/cookbook/Content/vf_wizard.htm
The article got me started, but then when I moved to the actual implementation in which I wanted to use controller extensions, I would be able to pass data between pages until I started including the extensions. I was left scratching away at my head for a while.
Finally, after many trials and errors, I came to the following conclusion: In order for data to be maintained from page to page, both the controller and the extension(s) referenced must be the same across all pages in the group.
For example, assume that the following Apex classes exist:
MyController
MyPage1Ext
MyPage2Ext
Also assume that I am trying to pass data between the following two pages, each of which uses the functionality included in the corresponding extension:
- MyPage1
- MyPage2
If I specify different attributes
extensions="MyPage1Ext"
and extensions="MyPage2Ext"
for the two pages, then I am unable to pass data back and forth even if I specify the same controller. The trick is to use the same controller and the same extensions on both pages via the attribute extensions="MyPage1Ext,MyPage2Ext"
.This is a bit depressing to know, but at least now I have a framework within I can build my actual application.