I sometimes use a proxy for doing redirects.

*public class RedirectProxy {*
* @Persist private String redirectURL;*
* @Inject private ComponentResources _resources;*
* Object onActivate(){*
* try {*
* URL url = new URL(redirectURL);*
* return url;*
* } catch (Exception e) {*
* // TODO: handle exception*
* } finally{*
* _resources.discardPersistentFieldChanges(); *
* }*
* return Index.class;*
* }*
* public void setRedirectURL(String redirectURL) {*
* this.redirectURL = redirectURL;*
* }*
*
*
* public String getRedirectURL() {*
* return redirectURL;*
* }*
*}*

Then from an eventhandler:
*redirectProxy.setRedirectURL(u);*
*return redirectProxy;*

It could perhaps be useful for this case?

--magnus

On Tue, Aug 23, 2011 at 11:00 PM, Gunnar Eketrapp <gunnar.eketr...@gmail.com
> wrote:

> Hum .. this did not work so I guess I have to do something on the client
> side as well ...
>
>           if (request.isXHR()) {
>                OutputStream os =
> response.getOutputStream("application/json;charset=UTF-8");
>                os.write(("{\"script\":\"window.location.replace('" +
> link.toAbsoluteURI() + "');\"}").getBytes());
>                os.close();
>            } else {
>                response.sendRedirect(link);
>             }
>
>
> 2011/8/23 Kalle Korhonen <kalle.o.korho...@gmail.com>
>
> > On Mon, Aug 22, 2011 at 4:42 PM, Howard Lewis Ship <hls...@gmail.com>
> > wrote:
> > > Actually, perhaps Tapestry's client-side support should, by default,
> > > handle 302 correctly.
> >
> > Yes, perhaps so. But the correctness is "in the eye of the beholder".
> > It's clear that a 302 response to a non-ajax request always causes a
> > redirect, but not necessarily so for an ajax request. If the default
> > behavior was easily overridable then yes, why not. Perhaps I should
> > just bring tapestry-exceptionpage functionality to the core.
> >
> > Kalle
> >
> >
> > > Currently, Tapestry's JSON response for partial page updates includes
> > > a special key for performing a redirect.
> > >
> > > On Mon, Aug 22, 2011 at 2:20 PM, Kalle Korhonen
> > > <kalle.o.korho...@gmail.com> wrote:
> > >> On Mon, Aug 22, 2011 at 1:27 PM, Gunnar Eketrapp
> > >> <gunnar.eketr...@gmail.com> wrote:
> > >>> I just rewrote my very old ProtectedPageGateKeeper that implemented
> > >>> Dispatcher with a new one
> > >>> inspired by Howard's blog
> > >>> http://tapestryjava.blogspot.com/search/label/security
> > >>> The new one implements ComponentRequestFilter and is better suited
> for
> > >>> protecting ajax enabled pages.
> > >>> So I thought ...
> > >>> Now to my problem:
> > >>> The redirect that takes place after an ajax call seems to disappear
> > into
> > >>> thin air. I.e. the page displaying
> > >>> a rollling ajax loader is not redirected to my /noacess page. I have
> to
> > hit
> > >>> a full page refresh for the redirect to work.
> > >>> Is there some trick needed in order to get the redirect to work for
> an
> > ajax
> > >>> call.
> > >>> Sorry for asking stupid newbie questions ... of course I have missed
> > >>> something again!
> > >>
> > >> I don't think it's a stupid newbie question but obviously you cannot
> > >> just send 302 uri as a response to an ajax request. If you want a full
> > >> page refresh, you can handle it similarly how the tynamo-exceptionpage
> > >> module (http://tynamo.org/tapestry-exceptionpage+guide) handles
> > >> exceptions in ajax responses
> > >> (
> >
> http://svn.codehaus.org/tynamo/trunk/tapestry-exceptionpage/src/main/java/org/tynamo/exceptionpage/services/ConfigurableRequestExceptionHandler.java
> > ).
> > >> Or, take a look at T5.3's new ajax error handler, rendering an iframe
> > >> on the fly in response to an ajax error.
> > >>
> > >> Kalle
> > >>
> > >>
> > >>> 2011-08-22 21:54:53.243 [btpool0-11] DEBUG
> > u.s.UtskicketModule.RequestLogger
> > >>> - Request: /group/members.grid.pager/1/grid (Method=POST,
> > >>> browser=Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101
> > Firefox/5.0,
> > >>> isXHR=true)
> > >>> 2011-08-22 21:54:53.243 [btpool0-11] DEBUG
> > >>> u.services.ProtectedPageGateKeeper2 - Page path:
> > >>> /group/members.grid.pager/1/grid
> > >>>
> > >>> 2011-08-22 22:01:06.500 [btpool0-10] DEBUG
> > u.s.UtskicketModule.RequestLogger
> > >>> - Request: /group/members.grid.pager/7/grid (Method=POST,
> > >>> browser=Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101
> > Firefox/5.0,
> > >>> isXHR=true)
> > >>> 2011-08-22 22:01:06.500 [btpool0-10] DEBUG
> > >>> u.services.ProtectedPageGateKeeper2 - Page path:
> > >>> /group/members.grid.pager/7/grid
> > >>> 2011-08-22 22:01:06.500 [btpool0-10] DEBUG
> > u.s.UtskicketModule.RequestLogger
> > >>> - Request: /noaccess (Method=GET, browser=Mozilla/5.0 (Windows NT
> 6.1;
> > >>> rv:5.0) Gecko/20100101 Firefox/5.0, isXHR=false)
> > >>>
> > >>> Note: The return from the request above does not show up in the
> browser
> > ...
> > >>>
> > >>> 2011-08-22 22:01:56.956 [btpool0-10] DEBUG
> > u.s.UtskicketModule.RequestLogger
> > >>> - Request: /group/members/3 (Method=GET, browser=Mozilla/5.0 (Windows
> > NT
> > >>> 6.1; rv:5.0) Gecko/20100101 Firefox/5.0, isXHR=false)
> > >>> 2011-08-22 22:01:56.960 [btpool0-10] DEBUG
> > >>> u.services.ProtectedPageGateKeeper2 - Page path: /group/members/3
> > >>> 2011-08-22 22:01:56.964 [btpool0-10] DEBUG
> > u.s.UtskicketModule.RequestLogger
> > >>> - Request: /noaccess (Method=GET, browser=Mozilla/5.0 (Windows NT
> 6.1;
> > >>> rv:5.0) Gecko/20100101 Firefox/5.0, isXHR=false)
> > >>>
> > >>> Note: Now we get to the /noaccess page
> > >>>
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > >> For additional commands, e-mail: users-h...@tapestry.apache.org
> > >>
> > >>
> > >
> > >
> > >
> > > --
> > > Howard M. Lewis Ship
> > >
> > > Creator of Apache Tapestry
> > >
> > > The source for Tapestry training, mentoring and support. Contact me to
> > > learn how I can get you up and productive in Tapestry fast!
> > >
> > > (971) 678-5210
> > > http://howardlewisship.com
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >
>
>
> --
> [Hem: 08-715 59 57, Mobil: 070-991 86 42]
> Allévägen 2A, 132 42 Saltsjö-Boo
>

Reply via email to