|
Thanks Cenk, I fond this web page after
you email. There are some limitations with the scheme as I stated in my last
post, which I think can be fixed. Sorry I misquoted your name in my last
positing. Regards, Yee From: Cenk Çivici
[mailto:[EMAIL PROTECTED] 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:
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()); }
|
- RE: How to implement 'back' button Yee CN
- RE: How to implement 'back' button Nico Krijnen

