org.springframework.web.servlet.mvc.annotation
Class ResponseStatusExceptionResolver

java.lang.Object
  extended by org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
      extended by org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver
All Implemented Interfaces:
Ordered, HandlerExceptionResolver

public class ResponseStatusExceptionResolver
extends AbstractHandlerExceptionResolver

Implementation of the HandlerExceptionResolver interface that uses the @ResponseStatus annotation to map exceptions to HTTP status codes.

This exception resolver is enabled by default in the DispatcherServlet.

Since:
3.0
Author:
Arjen Poutsma

Field Summary
 
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
ResponseStatusExceptionResolver()
           
 
Method Summary
protected  ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
          Actually resolve the given exception that got thrown during on handler execution, returning a ModelAndView that represents a specific error page if appropriate.
protected  ModelAndView resolveResponseStatus(ResponseStatus responseStatus, HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
          Template method that handles @ResponseStatus annotation.
 
Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
buildLogMessage, getOrder, logException, prepareResponse, preventCaching, resolveException, setMappedHandlerClasses, setMappedHandlers, setOrder, setPreventResponseCaching, setWarnLogCategory, shouldApplyTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResponseStatusExceptionResolver

public ResponseStatusExceptionResolver()
Method Detail

doResolveException

protected ModelAndView doResolveException(HttpServletRequest request,
                                          HttpServletResponse response,
                                          Object handler,
                                          Exception ex)
Description copied from class: AbstractHandlerExceptionResolver
Actually resolve the given exception that got thrown during on handler execution, returning a ModelAndView that represents a specific error page if appropriate.

May be overridden in subclasses, in order to apply specific exception checks. Note that this template method will be invoked after checking whether this resolved applies ("mappedHandlers" etc), so an implementation may simply proceed with its actual exception handling.

Specified by:
doResolveException in class AbstractHandlerExceptionResolver
Parameters:
request - current HTTP request
response - current HTTP response
handler - the executed handler, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
ex - the exception that got thrown during handler execution
Returns:
a corresponding ModelAndView to forward to, or null for default processing

resolveResponseStatus

protected ModelAndView resolveResponseStatus(ResponseStatus responseStatus,
                                             HttpServletRequest request,
                                             HttpServletResponse response,
                                             Object handler,
                                             Exception ex)
                                      throws Exception
Template method that handles @ResponseStatus annotation.

Default implementation send a response error using HttpServletResponse.sendError(int), or HttpServletResponse.sendError(int, String) if the annotation has a reason. Returns an empty ModelAndView.

Parameters:
responseStatus - the annotation
request - current HTTP request
response - current HTTP response
handler - the executed handler, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
ex - the exception that got thrown during handler execution
Returns:
a corresponding ModelAndView to forward to, or null for default processing
Throws:
Exception