Hi,
I am thinking of providing a 'back' button on all my pages. Below is a sketch on how I intended to do it, but before embarking on it I would like to know whether anybody has done similar and to hear from you Gurus whether my approach is workable.
1) I have a stack<backingBean, nagivgationResult> to store the pages being visited and the associated backing bean.
The stack will be limited to store (say) the last 10 pages visited, so it won't grow continuously. I think a circular list could probably be used for this.
2) A phase listener will push the current page's backing bean and navigation to the stack; it will happen at the AFTER RENDER_RESPONSE phase.
3) The 'back' button will pop the stack – restores the backing bean and navigates back to the page concerned.
4) Some pages can be marked to not to participate in this scheme.
I am assuming a) the beans are in request scope, b) there is only one backing bean per page.
For session scope beans I would have to serialize the bean.
Please – any comments?
Best regards,
Yee
// getting an restoring a manage bean
public static Object getManagedBean(String beanName) {
Object o = getValueBinding( "#{" + beanName + "}" ).getValue(FacesContext.getCurrentInstance());
return o;
}
public static void setManageBean(String beanName, Object bean) {
getValueBinding( "#{" + beanName + "}" ).setValue(FacesContext.getCurrentInstance(), bean);
}
// some helper methods
private static Application getApplication() {
ApplicationFactory appFactory = (ApplicationFactory)FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
return appFactory.getApplication();
}
private static ValueBinding getValueBinding(String el) {
return getApplication().createValueBinding(el);
}
private static Object getElValue(String el) {
return getValueBinding(el).getValue(FacesContext.getCurrentInstance());
}
http://www.jroller.com/comments/cenkcivici/Weblog/custom_jsf_navigation_handler_for contains an implementation for this requirement.
-Cenk Çivici
On 1/6/06, Yee CN <[EMAIL PROTECTED]> wrote:
- Re: How to implement 'back' button Cenk Çivici
- RE: How to implement 'back' button Yee CN
- RE: How to implement 'back' button Yee CN
- RE: How to implement 'back' button Nico Krijnen

