Brent,
When something is in request scope, it's gone forever once the page is sent to the browser.
You have 3 choices:
1. Bite the bullet and put the ArrayList in session scope. This is the easiest way, and if you clean up after yourself when you're done, the effect on performance is minimal.
2. Override the reset() method of your ActionForm bean and put in code to recreate the ArrayList and put it in request scope.
Struts calls the reset() method before performing validation, so if validation fails, the ArrayList will be there when the page is displayed.
3. If the ArrayList contains data that is the same for every user (e.g. States, colors, etc.) Put it in Application Scope. That way there's only one copy of it in memory and everyone uses it.