You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Dudley Butt@i-Commerce" <Du...@za.didata.com> on 2001/06/08 11:34:09 UTC

RE: Can anyone help with solving the "BACK" button problem, in th e browser?

well, this will blow all your socks off.
I got something to work, and remaining in line with my "REDUCE THE
JAVASCRIPT" policy
here is what i did...
 
I just plugged some code into my actionhandler to evaluate a state property
on my actionform. If it was a certain state i either perform usual
processing or just by pass the processing and show the JSP which gets
rebuilt anyways...
 
great!!
 
    public ActionHandlerResponse executeAction(ActionMapping mapping,
ActionForm form, HttpServletRequest request){
 
        System.out.println("In " + this.getClass());
        actionFormObject = (Vat201ReturnActionForm)form;
        aRequest = request;
        ActionErrors errors = null;
        if (actionFormObject.getRefreshOption()){   // IF THIS IS TRUE DONT
ALLOW ANY PROCESSING JUST REBUILD JSP
// THIS boolean GETS SET AFTER FIRST TIME PROCESSING 
                return new
ActionHandlerResponse(errors,mapping.findForward("success"));
        }
        errors = doFieldValidation();
        if (errors != null) {
            actionFormObject.setAction("Edit");
            return new ActionHandlerResponse(errors, new
ActionForward(mapping.getInput()));
        }
        else {
            errors = doReturnUpdate();
            if (errors == null){
 
                return new
ActionHandlerResponse(errors,mapping.findForward("success"));
            }
            else {
                actionFormObject.setAction("Edit");
                return new ActionHandlerResponse(errors, new
ActionForward(mapping.getInput()));
            }
        }
        //return new ActionHandlerResponse(errors,
mapping.findForward("mainMenu"));
    }

 
 

-----Original Message-----
From: Spencer Smith [mailto:spencers@newdestiny.net]
Sent: Thursday, June 07, 2001 7:44 PM
To: struts-user@jakarta.apache.org
Subject: Re: Can anyone help with solving the "BACK" button problem, in th e
browser?


That won't work.  I solved the problem using javascript.  Javascript doesn't
cache like JSP pages does, so you can get around this problem using
javascript.
 
If you want, I can send you the code I use.

----- Original Message ----- 
From: Thane Eisener <ma...@nortelnetworks.com>  
To: 'struts-user@jakarta.apache.org'
<mailto:'struts-user@jakarta.apache.org'>  
Sent: Thursday, June 07, 2001 10:12 AM
Subject: RE: Can anyone help with solving the "BACK" button problem, in th e
browser?


Oops, I guess I should test before I post. It looks like newer browsers
don't support this as a META tag only as a header.

I added the following to one of my action classes and the perform() method
was called when I pressed 'Back': 

response.addHeader("Pragma","no-cache"); 
response.addHeader("Cache-control","no-cache"); 

Hope it helps, 
Thane 

-----Original Message----- 
From: Peter Alfors [ mailto:peter.alfors@irista.com
<ma...@irista.com> ] 
Sent: Thursday, June 07, 2001 11:35 AM 
To: struts-user@jakarta.apache.org 
Subject: Re: Can anyone help with solving the "BACK" button problem, in 
th e browser? 


Thane , 

I am using: 
    <META http-equiv="Expires" content="now"> 
in my header, and my action is not re-executed when I use the browser 
back button. 
Is there another option I should be using? 

thanks, 
    Pete 


Thane Eisener wrote: 

> 
> 
> I seem to recall a META tag called something like pragma-no-cache that 
> you can embed in your page which will force the page to reload (not 
> just display a snapshot). This should enable handling the situation in 
> scriptlets or your action class. 
> 
> -----Original Message----- 
> From: Peter Alfors [ mailto:peter.alfors@irista.com
<ma...@irista.com> ] 
> Sent: Thursday, June 07, 2001 9:52 AM 
> To: struts-user@jakarta.apache.org 
> Subject: Re: Can anyone help with solving the "BACK" button problem, 
> in 
> the browser? 
> 
> Depending on which browser you use, and the data on the page, the back 
> button 
> may cause (or ask) the page to reload. 
> However, some browsers (like IE) only display a snapshot of what the 
> last page 
> rendered to. 
> Therefore, you cannot use scriptlets or the action class.  However, 
> you are able 
> to kick-off javascript. 
> If you can gaurantee that your users will have javascript enabled, you 
> can write 
> a simple test to see if this page was already displayed to the user. 
> You could 
> check a flag (hidden field) when the page loads.  If the flag is true, 
> then use 
> the javascript to reload to your desired page. 
> 
> HTH, 
>     Pete 
> 
> "Dudley Butt@i-Commerce" wrote: 
> 
> > Please help, 
> > 
> > When the user pushes the back button, I want the page to redirect or 
> refresh 
> > to a different page, please, any ideas? 
> > 
> > Thanx guys and gals 
> > Dudley 


Re: Can anyone help with solving the "BACK" button problem, in th e browser?

Posted by Jeff Trent <jt...@structsoft.com>.
Another approach I would recommend to solve this problem (haven't tried it
though), would be to check the request referer.  If it is an empty string
then the user either clicked refresh or they typed in the URL into the
address field on their browser.


----- Original Message -----
From: "William Jaynes" <wj...@mediaone.net>
To: <st...@jakarta.apache.org>
Sent: Friday, June 08, 2001 7:40 AM
Subject: Re: Can anyone help with solving the "BACK" button problem, in th e
browser?


> Just a comment... Looks like your method of checking the RefreshOption
> property will only work if the scope of the ActionForm is "session".
> That's ok if one doesn't mind the use of resources.
>
> ----- Original Message -----
> From: "Dudley Butt@i-Commerce" <Du...@za.didata.com>
> To: <st...@jakarta.apache.org>
> Sent: Friday, June 08, 2001 5:34 AM
> Subject: RE: Can anyone help with solving the "BACK" button problem, in
> th e browser?
>
>
> > well, this will blow all your socks off.
> > I got something to work, and remaining in line with my "REDUCE THE
> > JAVASCRIPT" policy
> > here is what i did...
> >
> > I just plugged some code into my actionhandler to evaluate a state
> property
> > on my actionform. If it was a certain state i either perform usual
> > processing or just by pass the processing and show the JSP which gets
> > rebuilt anyways...
> >
> > great!!
> >
> >     public ActionHandlerResponse executeAction(ActionMapping mapping,
> > ActionForm form, HttpServletRequest request){
> >
> >         System.out.println("In " + this.getClass());
> >         actionFormObject = (Vat201ReturnActionForm)form;
> >         aRequest = request;
> >         ActionErrors errors = null;
> >         if (actionFormObject.getRefreshOption()){   // IF THIS IS TRUE
> DONT
> > ALLOW ANY PROCESSING JUST REBUILD JSP
> > // THIS boolean GETS SET AFTER FIRST TIME PROCESSING
> >                 return new
> > ActionHandlerResponse(errors,mapping.findForward("success"));
> >         }
> >         errors = doFieldValidation();
> >         if (errors != null) {
> >             actionFormObject.setAction("Edit");
> >             return new ActionHandlerResponse(errors, new
> > ActionForward(mapping.getInput()));
> >         }
> >         else {
> >             errors = doReturnUpdate();
> >             if (errors == null){
> >
> >                 return new
> > ActionHandlerResponse(errors,mapping.findForward("success"));
> >             }
> >             else {
> >                 actionFormObject.setAction("Edit");
> >                 return new ActionHandlerResponse(errors, new
> > ActionForward(mapping.getInput()));
> >             }
> >         }
> >         file://return new ActionHandlerResponse(errors,
> > mapping.findForward("mainMenu"));
> >     }
> >
> >
> >
> >
>
>


Re: Can anyone help with solving the "BACK" button problem, in th e browser?

Posted by William Jaynes <wj...@mediaone.net>.
Just a comment... Looks like your method of checking the RefreshOption
property will only work if the scope of the ActionForm is "session".
That's ok if one doesn't mind the use of resources.

----- Original Message -----
From: "Dudley Butt@i-Commerce" <Du...@za.didata.com>
To: <st...@jakarta.apache.org>
Sent: Friday, June 08, 2001 5:34 AM
Subject: RE: Can anyone help with solving the "BACK" button problem, in
th e browser?


> well, this will blow all your socks off.
> I got something to work, and remaining in line with my "REDUCE THE
> JAVASCRIPT" policy
> here is what i did...
>
> I just plugged some code into my actionhandler to evaluate a state
property
> on my actionform. If it was a certain state i either perform usual
> processing or just by pass the processing and show the JSP which gets
> rebuilt anyways...
>
> great!!
>
>     public ActionHandlerResponse executeAction(ActionMapping mapping,
> ActionForm form, HttpServletRequest request){
>
>         System.out.println("In " + this.getClass());
>         actionFormObject = (Vat201ReturnActionForm)form;
>         aRequest = request;
>         ActionErrors errors = null;
>         if (actionFormObject.getRefreshOption()){   // IF THIS IS TRUE
DONT
> ALLOW ANY PROCESSING JUST REBUILD JSP
> // THIS boolean GETS SET AFTER FIRST TIME PROCESSING
>                 return new
> ActionHandlerResponse(errors,mapping.findForward("success"));
>         }
>         errors = doFieldValidation();
>         if (errors != null) {
>             actionFormObject.setAction("Edit");
>             return new ActionHandlerResponse(errors, new
> ActionForward(mapping.getInput()));
>         }
>         else {
>             errors = doReturnUpdate();
>             if (errors == null){
>
>                 return new
> ActionHandlerResponse(errors,mapping.findForward("success"));
>             }
>             else {
>                 actionFormObject.setAction("Edit");
>                 return new ActionHandlerResponse(errors, new
> ActionForward(mapping.getInput()));
>             }
>         }
>         //return new ActionHandlerResponse(errors,
> mapping.findForward("mainMenu"));
>     }
>
>
>
>