You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Davide Vecchi <dv...@amc.dk> on 2014/06/24 14:39:42 UTC

Handling Ajax requests when decorating the RequestExceptionHandler

Hi,

I'm decorating the RequestExceptionHandler in order to handle exceptions and then redirecting to the previous page (the one I find in the "Referer" HTTP header).

This works fine for normal page requests but I would like to handle also the case of Ajax requests. The JavaDoc of RequestExceptionHandler.handleRequestException (http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/RequestExceptionHandler.html) says:

"The handler is also responsible for setting the response status and the X-Tapestry-ErrorMessage response header. These are very important in Ajax requests to allow the client-side logic to detect the error and present it to the user."

I couldn't find documentation to figure out to what values I should set the response status and the X-Tapestry-ErrorMessage response header. Does anyone have suggestions ?
Thanks in advance.

Re: Handling Ajax requests when decorating the RequestExceptionHandler

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Tue, 24 Jun 2014 09:39:42 -0300, Davide Vecchi <dv...@amc.dk> wrote:

> Hi,

Hi!

> I'm decorating the RequestExceptionHandler in order to handle exceptions  
> and then redirecting to the previous page (the one I find in the  
> "Referer" HTTP header).
>
> This works fine for normal page requests but I would like to handle also  
> the case of Ajax requests. The JavaDoc of  
> RequestExceptionHandler.handleRequestException  
> (http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/RequestExceptionHandler.html)  
> says:
>
> "The handler is also responsible for setting the response status and the  
> X-Tapestry-ErrorMessage response header. These are very important in  
> Ajax requests to allow the client-side logic to detect the error and  
> present it to the user."
>
> I couldn't find documentation to figure out to what values I should set  
> the response status and the X-Tapestry-ErrorMessage response header.  
> Does anyone have suggestions ?

If you're actually decorating, not overriding, and calling the  
handleRequestException() method from the object you're decorating, this is  
already being done. If not, here's the summary of what the default one  
does:

response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); // HTTP  
status code 500 (internal error)
response.setHeader("X-Tapestry-ErrorMessage", exception.getMessage());

where response is a org.apache.tapestry5.services.Response object.

-- 
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

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