On page load the list is available because it is in the request scope i guess. So when the page is displayed first, the select tag is populated with the list object in request scope. When you click for search results, it is a new request. So When you forward the results, you need to again make the list available in the request scope. If you want to avoid making the list available for each request, you can use session scope for the list (make sure that the list in session doesnt contain stale data). This way when you load the page first time you make the list available for entire session. So the list now will be available in search results page.