Could someone advise me how to implement a JSF page so that some method in a certain backing bean is executed each time the page is displayed to user? Something like "on page load" action
Thanks,
Tim
Kavita Tipnis
Ranch Hand
Joined: Sep 21, 2008
Posts: 177
posted
0
A Backing Bean in a request scope can be one of the options.
Place your code/ method call in the constructor of the request scoped backing bean
and it will be invoked every time your jsp page is requested
Tim Wise
Greenhorn
Joined: Jul 25, 2009
Posts: 15
posted
0
Thanks. Yes, agree. I also had that idea, but this doesn't work for me because non of the GUI components are initialized when the constructor is executed. If I have a control binding - those variables are not yet initialized.
I also tried to use @PostConstruct - but this doesn't work either - controls are not yet initialized by the time the method is executed. Although, I've been using SessionScoped bean in this test.. I'll try the RequestScope bean + PostConstruct - maybe this makes sense.
Tim Wise
Greenhorn
Joined: Jul 25, 2009
Posts: 15
posted
0
OK, so here is a workaround I use currently:
JSF page looks like:
Then, my bean looks like:
But this is not convenient at all... It works but I myself don't like the idea - I need to use a <h : outputText /> just to invoke the method, plus the method itself is getBlaBlaBla() instead of only blaBlaBla(). Is there a way to execute an arbitrary backing bean method from within JSF page?
Smitha H Rao
Ranch Hand
Joined: Oct 20, 2007
Posts: 50
posted
0
I had same requirements in my project and I have used the requestscoped bean and put the code in a method marked @PostConstruct.
PostConstruct method gets called after constructor and all other initialization codes by the framework.