Expose handled exception as request attribute
This change exposes exceptions handled in the DispatcherServlet with a HandlerExceptionResolver as a request attribute. This is done only when the resolver returns an empty ModelAndView indicating the exception was resolved but not view is required (e.g. status code was set). In such cases the exception may be useful to any handlers in an ERRPR dispatch by the servlet container. Issue: SPR-11686
This commit is contained in:
@@ -232,6 +232,13 @@ public class DispatcherServlet extends FrameworkServlet {
|
||||
*/
|
||||
public static final String FLASH_MAP_MANAGER_ATTRIBUTE = DispatcherServlet.class.getName() + ".FLASH_MAP_MANAGER";
|
||||
|
||||
/**
|
||||
* Name of request attribute that exposes an Exception resolved with an
|
||||
* {@link HandlerExceptionResolver} but where no view was rendered
|
||||
* (e.g. setting the status code).
|
||||
*/
|
||||
public static final String EXCEPTION_ATTRIBUTE = DispatcherServlet.class.getName() + ".EXCEPTION";
|
||||
|
||||
/** Log category to use when no mapped handler is found for a request. */
|
||||
public static final String PAGE_NOT_FOUND_LOG_CATEGORY = "org.springframework.web.servlet.PageNotFound";
|
||||
|
||||
@@ -1165,6 +1172,7 @@ public class DispatcherServlet extends FrameworkServlet {
|
||||
}
|
||||
if (exMv != null) {
|
||||
if (exMv.isEmpty()) {
|
||||
request.setAttribute(EXCEPTION_ATTRIBUTE, ex);
|
||||
return null;
|
||||
}
|
||||
// We might still need view name translation for a plain error model...
|
||||
|
||||
Reference in New Issue
Block a user