I quickly discovered how I've taken outjection for granted when I got
started with the booking example. I instinctively created a @Producer
methods to expose the hotels to the UI
<h:dataTable value="#{hotels}"
var="_hotel">...</h:dataTable.
public
@Produces
@Named
@RequestScoped
List<Hotel> getHotels()
{
return hotels;
}
However, the problem is that before the find() action gets a chance to
invoke in response to the user clicking the Search button, JSF has already
called on the "hotels" context variable and it is assigned to the request
scope. So the UI doesn't see the updated value of the hotels property in the
Render Response phase. If this method is on a session-scoped bean, you can
perform a redirect after post and then the UI will get the right value.
What's the cleanest way to clear the context varaible in the find() method
so that the producer runs again in the Render Response phase?
-Dan
--
Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action
http://mojavelinux.com
http://mojavelinux.com/seaminaction
http://in.relation.to/Bloggers/Dan
NOTE: While I make a strong effort to keep up with my email on a daily
basis, personal or other work matters can sometimes keep me away
from my email. If you contact me, but don't hear back for more than a week,
it is very likely that I am excessively backlogged or the message was
caught in the spam filters. Please don't hesitate to resend a message if
you feel that it did not reach my attention.