You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Paul Stanton <pa...@mapshed.com.au> on 2010/07/21 05:32:13 UTC

redirecting from an ajax event listener

We have an ajax intensive project for which we need to better handle 
problems such as session timeouts.

Most of our ajax event handlers will return a MultizoneUpdate, and 
currently will run into a NullPointerException if the session has timed out.

Instead what I'd like these listeners to do is either forward to an 
error page (ie session timed out page) or attempt to reload the current 
page.

I'd also prefer to not have to implement this for every listener, but 
utilise 'onActivate' so that I don't need to copy and paste code into 
every event listener.

Does anyone have any tips for achieving this?

p.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: redirecting from an ajax event listener

Posted by Jim O'Callaghan <jc...@yahoo.co.uk>.
As an alternative I think you contribute your own access control dispatcher:

AppModule.java
.
.
.
      public void contributeMasterDispatcher(
			OrderedConfiguration<Dispatcher> configuration,
			@InjectService("AccessControlDispatcher") Dispatcher
accessController)
			{
			configuration.add("AccessControlDispatcher",
accessController,
				"before:ComponentEvent");
			}

... and just have:

.
.
.
if (request.isXHR()) {
			boolean noSession = (request.getSession(false)) ==
null ? true : false;
			if (noSession){
				OutputStream os =
response.getOutputStream("application/json;charset=UTF-8");
	
os.write("{\"script\":\"window.location.reload();\"}".getBytes());
				os.flush();
				return true;
			}

... in its dispatch method, so the timeout scenario is checked when AJAX
methods trigger a request, and redirect to your standard timeout page?  This
was a solution suggested previously on this list.

Regards,
Jim.

-----Original Message-----
From: Paul Stanton [mailto:paul@mapshed.com.au] 
Sent: 21 July 2010 08:12
To: Tapestry users
Subject: Re: redirecting from an ajax event listener

Thanks Kalle,

The tynamo plugin does exactly what i need.

regards, paul.

Kalle Korhonen wrote:
> You can implement onException() to catch exceptions thrown from page
> event handlers (see
> http://tapestry.apache.org/tapestry5.1/guide/event.html), or, though I
> know you don't like this, for handling known exceptions in a more
> generic manner you could use Tynamo's tapestry-exceptionpage module
> (http://tynamo.org/tapestry-exceptionpage+guide) - the module handles
> ajax requests as well.
>
> Kalle
>
>
> On Tue, Jul 20, 2010 at 8:32 PM, Paul Stanton <pa...@mapshed.com.au> wrote:
>   
>> We have an ajax intensive project for which we need to better handle
>> problems such as session timeouts.
>>
>> Most of our ajax event handlers will return a MultizoneUpdate, and
currently
>> will run into a NullPointerException if the session has timed out.
>>
>> Instead what I'd like these listeners to do is either forward to an error
>> page (ie session timed out page) or attempt to reload the current page.
>>
>> I'd also prefer to not have to implement this for every listener, but
>> utilise 'onActivate' so that I don't need to copy and paste code into
every
>> event listener.
>>
>> Does anyone have any tips for achieving this?
>>
>> p.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>     
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: redirecting from an ajax event listener

Posted by Paul Stanton <pa...@mapshed.com.au>.
Thanks Kalle,

The tynamo plugin does exactly what i need.

regards, paul.

Kalle Korhonen wrote:
> You can implement onException() to catch exceptions thrown from page
> event handlers (see
> http://tapestry.apache.org/tapestry5.1/guide/event.html), or, though I
> know you don't like this, for handling known exceptions in a more
> generic manner you could use Tynamo's tapestry-exceptionpage module
> (http://tynamo.org/tapestry-exceptionpage+guide) - the module handles
> ajax requests as well.
>
> Kalle
>
>
> On Tue, Jul 20, 2010 at 8:32 PM, Paul Stanton <pa...@mapshed.com.au> wrote:
>   
>> We have an ajax intensive project for which we need to better handle
>> problems such as session timeouts.
>>
>> Most of our ajax event handlers will return a MultizoneUpdate, and currently
>> will run into a NullPointerException if the session has timed out.
>>
>> Instead what I'd like these listeners to do is either forward to an error
>> page (ie session timed out page) or attempt to reload the current page.
>>
>> I'd also prefer to not have to implement this for every listener, but
>> utilise 'onActivate' so that I don't need to copy and paste code into every
>> event listener.
>>
>> Does anyone have any tips for achieving this?
>>
>> p.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>     
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
>   

Re: redirecting from an ajax event listener

Posted by Kalle Korhonen <ka...@gmail.com>.
You can implement onException() to catch exceptions thrown from page
event handlers (see
http://tapestry.apache.org/tapestry5.1/guide/event.html), or, though I
know you don't like this, for handling known exceptions in a more
generic manner you could use Tynamo's tapestry-exceptionpage module
(http://tynamo.org/tapestry-exceptionpage+guide) - the module handles
ajax requests as well.

Kalle


On Tue, Jul 20, 2010 at 8:32 PM, Paul Stanton <pa...@mapshed.com.au> wrote:
> We have an ajax intensive project for which we need to better handle
> problems such as session timeouts.
>
> Most of our ajax event handlers will return a MultizoneUpdate, and currently
> will run into a NullPointerException if the session has timed out.
>
> Instead what I'd like these listeners to do is either forward to an error
> page (ie session timed out page) or attempt to reload the current page.
>
> I'd also prefer to not have to implement this for every listener, but
> utilise 'onActivate' so that I don't need to copy and paste code into every
> event listener.
>
> Does anyone have any tips for achieving this?
>
> p.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org