struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From JOSE L MARTINEZ-AVIAL <jlm...@gmail.com>
Subject Custom error result for ExceptionMappingInterceptor
Date Sat, 20 Oct 2012 20:35:01 GMT
Hi,
  I want to use ExceptionMappingInterceptor to manage any exception thrown
while processing a request. The issue I have is that I want to map the
action to diferent results depending on some parameters of the request.
More specifically, the browser's client can send three diferent types of
request to my app:

    FullScreen -> It's a full navigation, i.e., the browser goes to a
diferent URL. In this case all the screen is reloaded, obviously.
    PaneScreen -> Part of the screen is updated using HTML code ( the
result of a JSP). The request is done using AJAX, so there is no navigation
in the formal sense.
    AJAX/JSON -> The page retrieves some information from the server in
JSON format using AJAX. There is also no navigation.

  The problem I have is that depending on the type of navigation (And I can
know that looking at the headers and the namespace of the action request) I
need to send diferent error results to the client. If it's a FullScreen
request I need to send a full error page. If it's a PaneScreen request,
then only a handful of HTML needs to be sent, since it only affects the
pane that send the request. Last, but not least, if it is a AJAX/JSON
screen I want to send a 500 error code with specific information in JSON
format so a meaningful message can be shown to the user.

  After researching a bit, it seems my only options are to chain an
HandleExceptionAction to the ExceptionMappingInterceptor result, so the
action can send the correct  result to the user (
http://stackoverflow.com/questions/5746941/mapping-struts-2-exception-handler-to-an-action),
or implement my own version of ExceptionMappingInterceptor. Is there any
other option I am missing?

thanks

K:

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message